青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

勤能補拙,Expter

成都游戲Coder,記錄游戲開發過程的筆記和心得!

#

關于會話記錄Session的實現

     摘要:        Session的適用性很廣,翻譯為‘會話’,最初接觸他的時候在做web方面,可以記錄一個用戶的會話記錄,當關閉瀏覽器的時候失效!Session實際上是一個特定的時間概念.       在最開始接觸它時沒有刻意的研究實現與擴展性,然后最近的一個工程有這...  閱讀全文

posted @ 2009-04-22 20:53 expter 閱讀(1449) | 評論 (1)編輯 收藏

一周回憶(2009.03.30-)

     本周公司游戲公測,然后也玩了此玩游戲,同時也比較關心游戲的運營狀態,畢竟是公司第一款游戲。
    雖然沒有參與此游戲的開發,但是看了server部分的代碼,可以通過此次運營游戲的問題,來提醒自己以后盡量不要出現此問題,或者是提供一個更好的解決方案。


    本周在公司沒做多大的事情,游戲公測,我也跑去玩游戲去了,雖然沒有太大的網游天賦,但是還是盡量通過看的資料與代碼在結合游戲來熟悉各個環節,為自己以后開發做好一定的基礎。

     本周清明節,放假3天,放假第一天先是回校和朋友們耍了,然后一起去圖書館還書,在借書,然后收到3G門戶人事的一些信息。放假第二天電腦出問題了,我寫的代碼用VS2005,VC6 一link就會死機,只有拔電源。我也不知道什么BUG。郁悶慘了,重裝系統問題依舊。陷于崩潰,最后打了幾盤Z3,緩解了下心情,然后只有用DEV了。晚上換了以前的Solaris,安裝了Ubuntu8.10,當然是虛擬機。放假第三天,和朋友逛了家樂福,下午睡覺,看了下畢業設計,有一些頭緒了。  然后晚上看了會書。三天放假就這樣過去了,感覺就像一宅男,下午和媽媽聊天,他喊我出去處處逛逛,我說一個人沒撒好逛的,已在叮囑我多吃,吃多點,感覺在父母眼中還是個小孩。。  這周看了2部電影,很好看,很好看,一部勵志電影《當幸福來敲門》 一部很感人的愛情片《八月迷情》。


     同時最近看了些書與代碼,感覺收獲蠻大,風格和注意問題都有提高。希望能再接再厲,保持狀態,努力學習!



   

posted @ 2009-04-06 23:55 expter 閱讀(400) | 評論 (0)編輯 收藏

Cutting Corners (acm 1996)

     摘要: 地址連接:http://www.karrels.org/Ed/ACM/96/ccorners.html剛開始做這題時候,沒作對,后來優化了下代碼,問了下pozen,測試代碼通過,只是沒有地方提交。。。尋路是dp(動態規劃)。。其實可以成優化成很小,直接是求所有點中的其中2點距離。 1996 ACM Scholastic Programming Contest Finals sponsored ...  閱讀全文

posted @ 2009-04-04 21:25 expter 閱讀(539) | 評論 (1)編輯 收藏

一周總結,讀書筆記

          這周主要是熟悉開發流程,閱讀工程代碼,熟悉方案邏輯,查看需求文檔,然后就是看書學習,閑來無事可以聽下歌,中午休息的時候去zoj做了幾道題目。

         
        查看了接近一周的代碼和書籍有了一下總結:
1.如果不需要一個類的對象不能被隱式的轉換,可以在構造函數前增加關鍵字explicit  
   
 1template<class T>
 2class Array
 3{
 4public:
 5    explicit Array(int _size = 0);
 6    T & operator [](int index);
 7    
 8}
;
 9
10Array<int> a(10);
11Array<int> b(10);
12
13if (a == b[i])
14{
15    // 如果沒有加explicit,可以編譯通過,加了就不能通過
16}

17// 要轉換可以使用
18if (a == static_cast<int> b[i])
19{
20    ..
21}

2.可以通過宏或者const常量,來優化,減少和優化常量,還可以利用宏來定義一些函數,或者字符串的處理。
   比如一個簡單的字符串處理
  
1#define  STR(ST) #ST

3.容器的使用,注意各種函數的參數和返回值以及各種函數使用。
   比如:關聯容器和標準容器在刪除元素的時候會不同。
     例子:
 1對于ma等關聯容器的元素刪除
 2map<int,int> mp;
 3for (map<int,int>::iterator it = mp.begin(); it != mp.end();)
 4{
 5    if ()  //滿足刪除條件
 6    {
 7        mp.erase(it++);//刪除當前節點,并返回下一個元素,自加
 8    }

 9    else
10    {
11        it++;
12    }

13}

14對于vector等標準容器的元素刪除
15vector<int> ve;
16for (vector<int>::iterator it = ve.begin(); it != ve.end();)
17{
18    if ()  //滿足刪除條件
19    {
20        it = ve.erase(it);
21    }

22    else
23    {
24        it++;
25    }

26}

27
28關于2者區別主要是erase返回值問題,可以在網上查相關的說明,

4.關于內存池,基于動態分配的安全的線程池,可以利用2個參數,一個數據類型,一個鎖類的參數模板。
   關于內存池可以閱讀boost::pool 庫相關文檔,Boost pool 庫引入了可用于實現快速內存分配的工具。正確的內存塊對齊可以得到保證。

   根據 Boost 文檔所述,當您分配和釋放許多小型對象時,建議使用池。使用池的另一個不太明顯的優點在于,作為程序員,您不必擔心內存泄露:內存由 Boost 庫在內部自動進行管理。要使用 pool 庫,您不必在鏈接時提供特定的庫——單憑頭文件就足以完成鏈接了。 有多個接口對 pool 庫可用:
   關于Boost pool可以閱讀
  http://www.ibm.com/developerworks/cn/aix/library/au-util_boost_lib/


     另外實現一個鎖類有很大的用處,比如
 1template<typename TyVal>
 2class Lock
 3{
 4public:
 5    explicit Lock()
 6    {}
 7    explicit Lock(TyVal val):_val(val)
 8    {
 9        //加鎖
10    }

11    ~Lock(){//釋放}
12private:
13    TyVal _val;
14}
;
15
16如果我們有一段代碼需要加鎖,則可以直接使用
17vector<int> Vint;
18Lock<vector<int> > lock(Vint);
19可以直到lock的聲明周期結束,釋放資源

5.關于重載操作符,本周看到同事們在討論一個關于結構體的代碼
  實例如下:
  
 1struct Test
 2{
 3    //
 4    
 5    Test & operator = (const Test &_t)
 6    {
 7        //關于此處是否需要增加一個 _t與*this的判斷,
 8       memcpy(this,&t,sizeof(t));      
 9        return *this;
10    }

11    
12    //
13}
;
    因為效率和安全的問題,是否需要增加判斷的代碼,比如
     if(_t == *this)
     {
         return *this;
     }
   其實Effective C++的條款17: (在operator=中檢查給自己賦值)的情況已經說了需要增加一個自檢驗證,我們姑且不考慮memcpy的數據重疊問題(new placement),增加一個明顯有好處。

6. 必須有良好的OOA,OOD思想,這樣能更快寫出,高效的代碼。
7. 算法重要,有良好的編程風格,在確保程序穩定的同時,增加效率。
 

個人總結不代表其他意見。。

posted @ 2009-03-29 22:28 expter 閱讀(2904) | 評論 (7)編輯 收藏

智能指針(auto_ptr 和 shared_ptr)

都是這周看書以及代碼的總結:
  
    Stl  中 auto_ptr只是眾多可能的智能指針之一,auto_ptr所做的事情,就是動態分配對象以及當對象不再需要時自動執行清理。
    這里是一個簡單的代碼示例,如果沒有auto_ptr,
    
   

 

 1void ProcessAdoption(istream &data)
 2{
 3 
 4    while (data)                            // 如果還有數據
 5    {
 6        ALA   *pa = readALAData(data);      // 取出下一個數據
 7        pa->DealProcessAdoption(data);        // 處理
 8 
 9        delete pa;                          // 釋放資源
10    }

11    return;
12}


     如果在DealProcessAdoption有一個exception,會發生什么事情,因為ProcessAdoption不能捕獲他,所以這段代碼很危險,所以DealProcessAdoption后面的代碼可能會跳過,造成內存泄露。
如果利用try catch去捕獲他,會搞得代碼很亂,又缺少美觀性。

所以Stl提供了一個智能指針來解決這個問題,我們可以先模擬實現一個智能指針的類實現。

 

 1// 關于一個智能指針的定義
 2template<typename Type>
 3class auto_ptr
 4{
 5public:
 6    auto_ptr(T *=NULL) :Ptr(p)
 7    {     }
 8    ~auto_ptr()
 9    {
10        delete Ptr;
11    }

12private:
13    Type *Ptr;
14}
;
15
16
17void ProcessAdoption(istream &data)
18{
19
20    while (data)                            // 如果還有數據
21    {
22        auto_ptr<ALA> pa(readALADara(data));
23        pa->DealProcessAdoption(data);
24    }

25    return;
26}


這個版本和原先版本的差異只有二處,
第一pa是一智能指針的對象,不是ALA*
第二不用自己去釋放delete

然后我看到Effective STL的條款
8:永不建立auto_ptr的容器
關于此可以看的Effective STL的條款8

因為auto_ptr并不是完美無缺的,它的確很方便,但也有缺陷,在使用時要注意避免。首先,不要將auto_ptr對象作為STL容器的元素。C++標準明確禁止這樣做,否則可能會碰到不可預見的結果

auto_ptr的另一個缺陷是將數組作為auto_ptr的參數: auto_ptr<char>  pstr (new char[12] ); //數組;為定義
然后釋放資源的時候不知道到底是利用delete pstr,還是 delete[] pstr;

然后收集了關于auto_ptr的幾種注意事項:
1、auto_ptr不能共享所有權。
2、auto_ptr不能指向數組
3、auto_ptr不能作為容器的成員。
4、不能通過賦值操作來初始化auto_ptr
std::auto_ptr<int> p(new int(42));     //OK
std::auto_ptr<int> p = new int(42);    //ERROR
這是因為auto_ptr 的構造函數被定義為了explicit
5、不要把auto_ptr放入容器

然后筆者從而推薦的是boost的shared_ptr,然后看完shared_ptr關于智能指針的介紹與例子。
5種針對auto_ptr不足的指針如下:需要詳細了解可以去查看相當文檔,與測試新代碼。
scoped_ptr <boost/scoped_ptr.hpp> 簡單的單一對象的唯一所有權。不可拷貝。
scoped_array <boost/scoped_array.hpp> 簡單的數組的唯一所有權。不可拷貝。
shared_ptr <boost/shared_ptr.hpp> 在多個指針間共享的對象所有權。
shared_array <boost/shared_array.hpp> 在多個指針間共享的數組所有權。
weak_ptr <boost/weak_ptr.hpp> 一個屬于 shared_ptr 的對象的無所有權的觀察者。
intrusive_ptr <boost/intrusive_ptr.hpp> 帶有一個侵入式引用計數的對象的共享所有權。

1. shared_ptr是Boost庫所提供的一個智能指針的實現,shared_ptr就是為了解決auto_ptr在對象所有權上的局限性(auto_ptr是獨占的),在使用引用計數的機制上提供了可以共享所有權的智能指針.
2. shared_ptr比auto_ptr更安全
3. shared_ptr是可以拷貝和賦值的,拷貝行為也是等價的,并且可以被比較,這意味這它可被放入標準庫的一般容器(vector,list)和關聯容器中(map)。

關于shared_ptr的使用其實和auto_ptr差不多,只是實現上有差別,關于shared_ptr的定義就不貼代碼了,以為內開源,可以網上找
1、shared_ptr<T> p(new Y);


要了解更多關于auto_ptr的信息,可以查看more effective c++ 的p158頁條款28
要了解shared_ptr 類模板信息,可以查看boost 1.37.0中文文檔,而且支持數組的shared_array 類模板
    

posted @ 2009-03-29 15:50 expter 閱讀(31354) | 評論 (5)編輯 收藏

2007年我在干啥

     摘要: 2007年我在干啥  閱讀全文

posted @ 2009-03-29 14:50 expter 閱讀(1697) | 評論 (3)編輯 收藏

生活雜記。。。

         這周末本來打算租房的,結果還是沒找到,很郁悶了,估計還得每天早起晚歸一周,原因有幾:房價太高,條件不好,都是中介舍不得中介費,家具配置也不咋全。


         這周在fox的幫助下,終于把Netmonitor搞完了,平時還是得多看書,多學習。
        周六找房子沒找到,實習論文懶得寫,晚上又真三了一盤。
        周末去上了會自習,看了下書,閑時看了下朋友的公務員題目,看了幾道題有幾個不會,汗一個
       
       題目如下: (猜數字)
      1 .    1    2    3    35   ..       猜下個數字
      2 .    1    3    4    1     9       猜下個數字


    下周計劃:
         1.沒事就多看書,多看代碼,多與其他人交流。
         2.每天晚上多熟悉shell編程。
         3、一定要確定房子。
         4、提前一個月祝女友公務員考試成功。因為你生活更精彩!

  

posted @ 2009-03-08 16:28 expter 閱讀(428) | 評論 (2)編輯 收藏

一個索引表 (風格,問題推廣分析)

     摘要: 今天看到以前寫的一個關于容器排序以及賦值問題。先貼以前代碼 #include <iostream>#include <cstdlib>#include <vector>#include <algorithm>using namespace std;template< cla...  閱讀全文

posted @ 2009-03-08 14:58 expter 閱讀(1244) | 評論 (2)編輯 收藏

一些學習筆記 ,陷阱,缺陷

 


1、關于初始化:

deque<string> Deque;// 一個deque容器

deque
<string> Deque2(Deque.begin(),Deque.end());                // 一種初始化

copy(Deque.begin(),Deque.end(),back_inserter(Deque2) );         
// 一種初始化

deque
<string> Deque3(istream_iterator<string>(cin),istream_iterator<string>()); // 一種初始化
  現在討論第三種初始化方式,
typedef istream_iteraor<string> (Func)();

deque
<string> Deque3(istream_iteraotr<string> cin, Func);  
看上去像一個函數聲明,

typedef istream_iteraor
<string> (Func)();
deque
<string> f(stream_iteraor<string> ,Func);
現在比較清晰了吧,很像一個函數聲明了,

所以第三種初始化方式根本就不能做任何事情.

//如果真的要達到初始化的目標,可以通過括號來消除二義性
deque<string> Deque3( (istream_iterator<string> (cin)) , istream_iterator<string>() );

通過加括號來提示編譯器我們這里提供的是構造函數的參數而非參數聲明,因為 (istream_iterator<string> (cin))  不能解析為變量聲明,這個更void f ( (int i)) 不可能是函數聲明是一回事。多一對括號不可能解釋為合法的聲明語句。


2.關于double 和float 區別

一個例子
int main()
{

  
double  x = 1e8;
  
  
while(x >0)
      x
--;


   
return 0;
}


 

現在的編譯器一秒就可能運行完成,
如果吧doubel x = 1e8 ,換為 float x = 1e8;
 C++標準說 :
 浮點類型有三種: float ,double, long double,關于精度很顯然
如果換成float 答案很詭異,因為取決于float的精度,能否表達0 1e8區間的整數

所以如果換為 float,可能運行一秒,也可能是死循環,因為如果float不能表達0 1e8區間的整數, 因為其中 n-1 = n (由于浮點精度不夠)



3. 一些拼寫代碼錯誤

#include <iostream>
#include 
<iomanip>

using namespace std;

int main()
{
    
int x = 1;
    
for (int i =0 ; i < 100; i++)
    
{
        ;
    }


    
//  下面這行代碼會干些什么?遞增???????/
    ++x;
    std::cout 
<< x << std::endl; 
    
return 0;
}


  一個支持標準c++的編譯器答案輸出是 1
  原因很詭異,因為有個有趣的是:注釋末尾‘??/’會被轉換為'\' ,寫個宏的都知道這個就是換行符,所以??/換轉換為\ ,而++x就相當于粘貼到注釋行的末尾 ,所以++x.,不會起作用,是注釋的一部分。

在看一個例子:
一個符號標準 c++的編譯器會報多少錯誤。
struct X 
{
    
static bool f(int *p)
    
{
        
return p &&0[p] and not p[1:>>p[2];
    }

}
;

先一步一步的分析
1:0[p] 其實和p[0]一樣
2: and not都是有效關鍵字 ,他們分別是&& 和!
3::>竟然也是合法的,他是]的雙字符寫法。

所以這個語句會被解析為 return p && p[0] && !p[1]>p[2] ,沒有語法錯誤。
很詭異。

 

posted @ 2009-03-08 14:05 expter 閱讀(1892) | 評論 (5)編輯 收藏

最近筆記以及總結!

     來公司已經2周了,自己做的工作挺少,給的3周完成的一個編輯器,不到2周基本功能做完了,因為沒有詳細的設計,而且是內部的人員使用,很多的功能都是自己來規劃的,其實我覺得平時在校的話 這個3-4天就可以做完,不知道為啥做了這么久!

     沒看看著忙碌的同事,還有游戲正在三測,都在加班,我只是看一些一些接口,一些邏輯代碼,沒多大的事情,估計是剛來任務也很輕吧,呵呵!
   
     在校雖然學了主流的的語言,但是最后選擇C++,因為它開發自由,效率高,結構性很強等等。最近看了幾本書,對OOD,OOA,以及編寫代碼時的問題,與良好的設計模式有了一定的提高,但是對于有些又有些遺忘,比如STL,LUA,軟件工程。在我看來,一個程序員必須有很好的算法功底與扎實的數據結構!最近手中還有幾本書,打算閑的時候看,OOD啟示錄,boost也得學學,另外stl,設計模式和網絡編程以及他的幾種模型都要加強復習。

     在我看來一個項目只有有了這方面的理論知識,有一門熟練的語言,實現起來都很快,自己感覺缺少的是一種思想,架構思想,估計是自己接觸的太少,經驗太少,需要的是時間來催化!
    
     同時很高興在新的環境認識了新的朋友,大家都很和善,同時也知道fox,kevinlynx也經常在CPPBLOG這里寫日記,以后得像2位學習,以及公司的同事都是俺的前輩。

     在大學沒有寫個太大的程序,估計最大一個軟件的在6K左右行吧(c++),ACM估計在100多道,以及平時也的小東西不到20個項目。學習筆記,以及一些簡單的win 32 編程還是有少許,比如底層驅動之類的。

     現在的任務就是多看一些大牛的技術blog,多看書,多寫代碼才是王道,以后編程盡量規范了,良好的風格以及更好設計模式,更優的算法才是最好的,在我平時做什么東西,都希望敢時間,幾下就做不了了之。還得改正。

     我比較喜歡網絡編程,平臺方面主要是win,對于linux只是寫過,平時玩玩。學得都比較淺畢竟沒做個啥子大的商業項目。既然來了這個公司就要做出自己成績。年輕有無限的激情,就要努力。

     在等段時間就要寫畢業設計和論文了,希望沒多大問題,一個彩色人臉識別程序,關鍵是識別成功率!

     在大學最后的時間即將完成,邁入社會就得認真對待任何事情了。努力工作,掙錢,養老婆,呵呵!   

     加油!!!就想kevinlynx那天說的,讓人知道你能做什么,會什么!!

     因為自己表達能力稍加,一般不寫技術,怕描述因次誤導或者亂說了,其實也沒多大技術含量、、、呵呵 主要記錄的生活筆記!

posted @ 2009-02-22 22:21 expter 閱讀(2032) | 評論 (12)編輯 收藏

僅列出標題
共7頁: 1 2 3 4 5 6 7 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            9国产精品视频| 欧美国产专区| 欧美日韩国产综合视频在线观看| 亚洲国产精品嫩草影院| 一本综合久久| 亚洲欧洲一区二区在线播放| 国产精品自拍网站| 国产精品女人毛片| 国产精品日韩高清| 欧美日精品一区视频| 欧美电影在线| 欧美三级网址| 国产精品夜夜夜一区二区三区尤| 久久久久久自在自线| 国产精品狠色婷| 国产女同一区二区| 黄色一区二区在线| 亚洲高清视频一区二区| 亚洲韩国日本中文字幕| 亚洲黄色有码视频| 日韩午夜av| 久久伊人亚洲| 欧美成人精品1314www| 欧美高清视频一二三区| 99精品国产99久久久久久福利| 亚洲永久在线| 欧美日韩p片| 国产日韩av一区二区| 亚洲国产精品一区在线观看不卡 | 亚洲国产另类精品专区| 亚洲视频综合| 欧美日韩国产一区精品一区| 在线成人免费视频| 欧美亚洲一级片| 91久久精品久久国产性色也91 | 亚洲在线观看免费视频| 久久最新视频| 欧美伊人久久久久久午夜久久久久 | 亚洲国产精品va| 欧美一级午夜免费电影| 国产精品欧美激情| 亚洲一区视频| 亚洲午夜高清视频| 欧美日本一区二区高清播放视频| 国产一区二区丝袜高跟鞋图片| 亚洲一区免费视频| 亚洲国产婷婷香蕉久久久久久99| 久久国产婷婷国产香蕉| 黑人一区二区| 狼狼综合久久久久综合网 | 一本久久综合| 亚洲国产精品久久久| 欧美激情国产日韩| 亚洲视频axxx| 欧美一区二视频| 亚洲大胆美女视频| 欧美激情在线| 国产日韩精品入口| 麻豆av一区二区三区| 欧美激情第五页| 欧美一区二区三区日韩视频| 久久精品论坛| 亚洲午夜一级| 久久精品一本久久99精品| 亚洲狼人精品一区二区三区| av成人毛片| 亚洲国产一区二区三区在线播 | 亚洲欧美日韩精品久久| 国产一区二区三区黄| 国产精品jizz在线观看美国 | 一区二区三区 在线观看视频| 国产精品护士白丝一区av| 亚洲国产高清视频| 国产乱人伦精品一区二区| 欧美成人精品h版在线观看| 欧美视频一区二区三区在线观看| 久久综合色婷婷| 国产精品婷婷午夜在线观看| 亚洲一区成人| 在线午夜精品自拍| 欧美日韩精品一二三区| 欧美freesex8一10精品| 一区二区三区在线视频播放| 午夜精品久久久久久久99水蜜桃 | 伊人久久久大香线蕉综合直播 | 国产一区视频在线观看免费| 一区二区日本视频| 亚洲欧美日本视频在线观看| 欧美精品18| 中文日韩在线视频| 久久久久久成人| 亚洲精品久久久久| 国产精品日韩在线一区| 久久久久se| 亚洲免费观看视频| 久久精品成人欧美大片古装| 好男人免费精品视频| 亚洲国产精品成人一区二区| 一本高清dvd不卡在线观看| 国产午夜精品麻豆| 欧美日韩国产探花| 欧美激情在线播放| 亚洲国产一区在线| 亚洲电影免费观看高清完整版在线观看| 欧美在线一级va免费观看| 亚洲图片在线| 亚洲娇小video精品| 久久久久久亚洲精品杨幂换脸 | 一区二区三区在线免费视频| 欧美11—12娇小xxxx| 亚洲国产成人高清精品| 欧美高清在线一区二区| 久久精品在线视频| 99亚洲一区二区| 在线免费日韩片| 国产日韩欧美高清| 国产精品永久免费视频| 欧美韩国在线| 男女激情久久| 久久久亚洲成人| 欧美成人按摩| 韩国女主播一区二区三区| 国产精品久久福利| 国产精品伦子伦免费视频| 国产精品久久久免费| 欧美视频一区二区三区| 欧美性片在线观看| 国产精品视频专区| 在线国产日韩| 日韩网站在线观看| 香蕉成人久久| 欧美日韩精品一区二区在线播放 | 亚洲电影第1页| 一本一本大道香蕉久在线精品| 亚洲一区二区3| 噜噜噜噜噜久久久久久91| 亚洲精品国精品久久99热一| 中文一区二区在线观看| 久久久国产一区二区三区| 欧美日韩1区2区| 亚洲国产天堂久久国产91| 午夜精品亚洲| 日韩一级裸体免费视频| 毛片基地黄久久久久久天堂| 国产精品久久久久一区二区三区共| 激情偷拍久久| 欧美中文字幕在线视频| 日韩一二三在线视频播| 欧美激情片在线观看| 亚洲成人直播| 欧美二区不卡| 玖玖精品视频| 在线看一区二区| 麻豆成人av| 蜜臀av性久久久久蜜臀aⅴ| 国产一区二区三区黄| 久久一区二区三区超碰国产精品| 亚洲欧美亚洲| 国产一区二区三区在线观看精品| 亚洲欧美日韩国产精品 | 一区二区三区www| 猛男gaygay欧美视频| 久久人人看视频| 亚洲深夜福利| 欧美一级大片在线观看| 国产日韩欧美夫妻视频在线观看| 久久av一区二区| 久久久久国色av免费看影院| 久久久久久一区| 亚洲视频在线观看网站| 亚洲欧美精品在线观看| 亚洲国产精品久久久久婷婷老年| 亚洲国产欧美日韩精品| 国产精品久久久久久久久久久久久久| 久久超碰97人人做人人爱| 欧美成人在线网站| 欧美在线一二三区| 欧美日韩精品免费观看视一区二区| 亚洲综合导航| 欧美成人中文| 久久只有精品| 国产精品婷婷| 日韩一区二区电影网| 国内精品久久久久影院 日本资源| 欧美激情一区二区三区四区 | 久久综合一区二区三区| 中国日韩欧美久久久久久久久| 久久久久国产精品午夜一区| 欧美亚洲三区| 欧美噜噜久久久xxx| 亚洲欧洲精品一区二区三区不卡| 国产日韩欧美综合| 亚洲欧美精品| 麻豆91精品91久久久的内涵| 精品电影一区| 久久超碰97中文字幕| 久久免费精品日本久久中文字幕| 欧美亚洲成人精品| 亚洲一区综合| 毛片一区二区三区|