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

沐楓小筑(C++)

愛老婆,要比編程多一點...

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  18 Posts :: 0 Stories :: 84 Comments :: 0 Trackbacks

公告

沐楓的個人主頁

eoool.com生成

eoool.com生成

常用鏈接

留言簿(8)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 57528
  • 排名 - 404

最新評論

閱讀排行榜

評論排行榜

2007年12月15日 #

今天安裝svn服務器。上官網下載,發現windows下有一個稍微好用些的svn服務器。
下載地址: http://www.visualsvn.com/server/

這個東西有幾個特色:
1. 安裝和配置過程很方便(最大優點之一)
2. 自帶apache/ssl/mod_dav_svn/...等模塊,既小巧,又簡單,也安全一些。
3. 自帶MSC管理工具,可以創建用戶、用戶組,還可以管理多個源碼庫,以及配置各個路徑的訪問權限(最大優點之二)

通過上面下載地址,可以看到截圖。不過,截圖的版本稍低點。目前的版本是1.01。核心是Svn1.45,與官方同步。其實它也是為官方提供windows移植版的網站之一。

需要注意的是,這個網站提供的VisualSVN Server是免費的,而客戶端VisualSVN是收費的。我們可以不用該客戶端,客戶端還是用TortoiseSVN/AnkhSVN之類的。 VisualSVN客戶端從介紹上看,與AkuhSVN是差不多的,只不過功能上略有優點。定價是$49。
posted @ 2007-12-15 18:34 沐楓 閱讀(1598) | 評論 (1)編輯 收藏

2007年11月30日 #

    從VC2003到VC2005,一直有一個很奇怪的問題。
    如下的代碼:
    short s1 = 0;
    
short s2 = 2;

    s1 
+= s2;
    在這兩個編譯器的 /w4 四級警告打開的時候,就冒出以下的警告來:
warning C4244: “+=”: 從“int”轉換到“short”,可能丟失數據
    為了消除這個警,只能將 += 拆成 = 和 +,如 s1 = s1 + s2。

    終于,這個問題在VC2008消失了。
posted @ 2007-11-30 12:50 沐楓 閱讀(2294) | 評論 (7)編輯 收藏

2007年10月17日 #

    沒想到漢語編程又有人開始網上對罵了。一方指另一方騙人,一方吹自已偉大。
    今天群里頭有人又把它翻出來了,剛好無聊,也就發明了一個漢語編程語言,集成到visual studio 2005的IDE中,名字就叫漢語編程++,歡迎同樣無聊的朋友試用。
#include "常用頭文件"


整數 主函數(整數 參數數量, 字符指針 參數 是數組)
{
    整數 變量1 賦值為 
3;
    如果(變量1 大于 
0)
    {
        打印(
"可以中文編程\n");
    }

    系統命令(
"Pause");
    返回 
0;
}


    運行結果就是:“可以中文編程”
    語法呢,就是C++一樣的,那個“常用頭文件”的內容如下:
#define 整數 int
#define 如果 if
#define 大于 >
#define 打印 printf
#define 系統命令 system
#define 賦值為 =
#define 主函數 _tmain
#define 字符指針 _TCHAR*
#define 是數組 []
#define 返回

#include 
<tchar.h>
#include 
<iostream>

    唯一美中不足的是,#include暫時無法漢化。于是勸群里的人用這個寫寫情書,結果,沒人響應...
    不過,#include 可以在項目屬性中去掉它(C++高級選項:強制包含),或是指定編譯命令參數 /FI "常用頭文件" ,這樣就可以去掉上面的“#include "常用頭文件"”了。  
-----
以上程序在VC++2005上編譯并運行通過。

附群朋友的程序:
高興不<>  19:54:59
還真有這么玩的啊
沐楓(Liny)()  19:55:02
各位朋友,咱們提供一個頭文件,于是全中國人都可以用vc++2005來進行中文編程了。
風在奔跑()  19:55:05
我從來沒這么玩過.
沐楓(Liny)()  19:55:19
玩玩吧,挺好玩的。
風在奔跑()  19:55:28
干脆把所有函數用中文define成一個中文編程庫.
沐楓(Liny)()  19:55:30
不就是一堆#defing
沐楓(Liny)()  20:13:43
用這個寫情書吧各位。
西瓜()  20:13:57
女朋友不懂程序怎么辦
TLAH()  20:13:58
這樣的情書...球球不會喜歡的
高興不<>  20:14:04
。。。情書里就一個彈出的對話框"欲知詳情,請看代碼"
西瓜()  20:14:17
球球又沒出現

TLAH()  
20:19:00

#define 趁還 while
#define 那個啥 int
#define 總的來說 main
#define 買 cin
#define 賣 cout
#define 進 >>
#define 出 <<
#define 拜拜了 return
#define 去掉 -=
#define 等于 =
#define 屁 100e4
#define 我說 (
#define 是吧 )
#define 啊 a
#define 那么就 {
#define 得了 }
#define 呀 ;
#include 
<iostream>
using namespace std;

那個啥 總的來說 我說 那個啥 啊 是吧
那么就 那個啥 有錢 等于 屁 呀
趁還 我說 有錢 是吧    那么就
那個啥 多少 呀 買 進 多少 呀 賣 出 多少 呀 有錢 去掉 多少 呀
賣 出 多少 呀 得了
拜拜了 啊 呀 得了 

高興不
<>  20:19:30
最有語義的中文編程誕生了 



posted @ 2007-10-17 20:22 沐楓 閱讀(4135) | 評論 (38)編輯 收藏

2007年9月27日 #

   C語言確實很優雅,整個語言的設計簡潔一致。而在C++中,有一個讓人詬病的問題就是變量初始化的不一致性。
   C語言中的初始化,都是用花括號進行,簡單美觀:

int array[] = {1,2,3,4,5};
struct Point point = {23};
struct Point arrPoint[] = 
{
  {
2,3},
  {
4,5},
  {
6,7}
};

   C++自然也兼容了C語言的初始化機制。然而,C++的Class乃至STL都不支持。它們要用不同的方式來初始化, 甚至根本不能夠直接初始化, 只能使用運行時的賦值。
   比如Class:
class Param
{
public:
  
int Age;
  
int Value;
private:
  
int Level;
};

Param param 
= {2,3}; // ERROR
Param param = {2,3,4}; //ERROR
   無法初始化。而如果不初始化的話,所有的成員而處于無政府狀態,這顯然很不讓人放心。于是,C++提供了專門用于Class的初始化方式--構造函數:
class Param
{
public:
  Param(
int x, int y)
    : x_(x), y_(y)
  {}
  Param()
    : x_(
0), y_(0)
  {}
private:
  
int x_, y_;
};

Param param(
1,2);
//
Param param;
   有了構造函數,可以在構造函數的初始化列表中對成員進行初始化。可是很明顯,這里頭還是有一個陷阱,默認構造初始化和非默認構造初始化的調用方式是不一致的。默認構造函數不能用括號來調用,否則編譯器將會發瘋:
Param param();
   它會把上面的語句看成是函數聲明,而后面調用的時候就會出錯,而錯誤信息可能會讓你抓狂一下。但是這樣也就算了,偏偏 new 可以接受有括號和沒括號兩種寫法:
Param* p1 = new Param;
Param
* p2 = new Param();
   再來說說初始化列表。初始化列表,事實上,也只能支持簡單的標量類型,諸如int,bool,指針之類的;復雜點的,如數組、結構,不好意思,不支持--只能在構造函數體中進行賦值。還有一個很迷糊初學者的問題是,成員初始化的順序僅依賴于成員定義的順序,而不是初始化列表中的順序。

   再比如STL容器,這下好象更慘,連構造函數都幫不上忙了,除了初始化一個空的容器,或是復制一下別的容器,我們只能做用默認構造函數進行初始化。我們拿數組和vecotr做個比較:
// 數組
int arr[]={1,2,3,4};
// vector
vector<int> iarr;
// 必須在某個函數中賦初值
void init()
{
  
for(int i = 1; i <= 4++i) 
    iarr.push_back(i);
}

   再復雜一點的數據結構,那單單賦值程序就要寫上老長,而且還不好看。還要記得調用。這對于僅僅是簡單的設置一些初值的用途來說,太過于煩瑣。

   橫向比較,這次好象C++還不會太落伍,只有C和動態語言提供了初始化特性,其它支持OO高級語言好象都是學C++的。如Java, C#(注C#3.0開始提供初始化功能)...
   
   C++能不能做到簡潔一致的實始化呢?
   Boost的assign庫做了許多有益的工作。使用assign庫,至少現在可以初始化了:
vector<int> arr = list_of(1)(2)(3)(4);   

typedef boost::tuple
<int,std::string,int> tuple;
vector
<tuple> v = tuple_list_of( 1"foo"2 )( 3"bar"4 );

map
<int,int> next = map_list_of(1,2)(2,3)(3,4)(4,5)(5,6);

stack
<string> names = list_of( "Mr. Foo" )( "Mr. Bar")( "Mrs. FooBar" ).to_adapter();
   如果是賦值,也可以簡略很多:
vector<int> v;
+= 1,2,3,repeat(10,4),5,6,7,8,9;
// v = [1,2,3,4,4,4,4,4,4,4,4,4,4,5,6,7,8,9]
  不過,也僅能如此了。assign經過許多努力,也僅能支持容器的初始化,而且還不夠漂亮。

   C++0x已確定提供與C一致的初始化功能。 Initialer lists Initializer Lists for Standard Containers Initializer lists WP wording 等草案就是為了這個目的服務的。
   如果使用C++0x,那么程序的初始化將變得清晰和一致:
complex<double> z = {1,2}; 
//
complex<double> z {1,2}; 
// 初始化中,有等號和無等號都是允許的,下同。
+= {2,3};

int a = {1}; 

new vector<string>{"once""upon""a""time"}; 

f( {
"Nicholas""Annemarie"} ); // 參數是兩個元素的列表

return { "Norah" }; // 返回只有一個元素的列表
 
int* e {};  // 初始化為0或NULL指針

map
<string,int> anim = 

  {
"bear",4}, 
  {
"cassovary",2}, 
  {
"tiger",7
}; 

   這好象是C++欠了十多年的債吧。
   
posted @ 2007-09-27 17:39 沐楓 閱讀(2726) | 評論 (6)編輯 收藏

2007年9月26日 #

    一直在使用C/C++,對于循環語句while、do while、for,對于for情有獨鐘,因為其簡潔、清晰、靈活。訪問數組類型的變量,只有for寫出來的語句是最易于閱讀的,如:
int arr[N] = {/**/};
for(int i = 0; i < N; ++i)
  printf(
"arr[%d] = %d\n", i, arr[i]);

    然而,這種情況,到了STL時,就有些變味了:
for(vector<MyClass>::const_iterator iter = m_vecData.begin(); iter != m_vecData.end(); ++iter)
{
    
if(!iter->IsBusy())
        iter
->DoSomeThing(param);
}
    這么長的一個for,不再給人一種清晰的感覺了。或許因為這個程序比較短,還沒有太大的感覺,當回頭去看自已的程序中,有不少這樣的寫法時,我就覺得一陣心煩。改改?
for(size_t i = 0; i < m_vecData.size(); ++i)
{
    
if(!m_vecData[i].IsBusy())
        m_vecData[i].DoSomeThing(param);
}
    不錯,還是簡單點好啊。但是因為這里舉的是vector的例子。如果是list或是別的什么容器,就行不通了。
    其它的高級語言,都提供了foreach或是for in語句,寫出來就很清晰:
foreach(item in m_vecData)
{
    
if(!item.IsBusy())
        item.DoSomeThing(param);
}
    C++是不是也可以這么簡單?好象STL中也有一個for_each,試著改寫一下:
struct IfNotBusyThenDoSomeThing
{
   
IfNotBusyThenDoSomeThing(const Param& param)
        : param_(param)
    {}
    
void operator() (const MyClass& item)
    {
        
if(!item.IsBusy())
            item.DoSomeThing(param_);
    }
private:
    
const Param& param_;
};

for_each(m_vecData.begin(), m_vecData.end(),
IfNotBusyThenDoSomeThing(param));
    不錯,for語句簡單了,但是卻多了IfNotBusyThenDoSomeThing的定義,這代碼可是多了好幾倍。要是每個循環都要來這么一下,我還不如直接寫for,要來得爽快一些。或許還有別的辦法:
vector<MyClass> notBusyClass;
remove_copy_if(m_vecData.begin(), m_vecData.end(), inserter(notBusyClass, notBusyClass.begin()), mem_fun_ref(
&MyClass::IsBusy));
for_each(notBusyClass.begin(), notBusyClass.end(), bind2nd(mem_fun_ref(
&MyClass::DoSomeThing), param));
    天哪,這種寫法好象更恐怖。而且,還不是每種情況都能用的:
    1. notBusyClass不能是vector<const MyClass&>,因為不能建立指向引用的指針。這就要求MyClass是可拷貝的。但就算是可拷貝的,有時候拷貝成本也是很高的。
    2. MyClass::DoSomeThing的參數不能是引用(我們常定義參數為:const Param&),因為不能定義引用的引用這種類型。
    3. 一旦出現錯誤,這錯誤信息會讓人極其昏倒。

    看來單靠標準C++是不成的。Boost的lambda的庫似乎很不錯,用用:
    for_each(m_vecData.begin(), m_vecData.end(),
        if_then( !bind(
&MyClass::IsBusy, _1),
            bind(
&MyClass::DoSomeThing, _1, param)));
    不錯,好了一些,但是還是很不好看。有沒有更好的?有,boost1.34新加入的BOOST_FOREACH:
BOOST_FOREACH(cosnt MyClass& item, m_vecData)
{
    
if(!item.IsBusy())
        item.DoSomeThing(param);
}
    Oh Yeah!

    好了,問題來了,為什么C++不直接在語言中提供foreach這個功能呢?
    個人認為,原因有幾點:
    1. C/C++除了數組外,沒有內置的容器,因此for語句足矣。
    2. 當C++進化到STL的時候,C++標準委員會根本沒空去考慮其它的。
    而其它高級語言之所以內置了foreach,就是因為它們一開始就提供了標準的容器庫和迭代/枚舉接口,因此提供foreach就順理成章了。

    現在,總算C++開始考慮,由模板引入而造成的代碼復雜性的問題,這的確是Cpper的福音。因此,一系列相關的提案被提交。牽涉到上面代碼中的提案就有: DecltypeLambda expressions and closures for C++proposal for new for-loop。  
    其中,最符合foreach要求的就是新的for循環。采用這個語句,上面的程序就可以這么寫:
for(const MyClass& item : m_vecData)
{
    
if(!item.IsBusy())
        item.DoSomeThing(param);
}

    不過,考慮到Decltype&auto提案已經被采納,新的for-loop就不知道能不能再被采納。因為使用Decltype&auto后,程序可以這么寫:
for(auto iter = m_vecData.begin(), end = m_vecData.end(); iter != end; ++iter)
{
    if(!iter->IsBusy())
        iter->DoSomeThing(param);
}
    似乎還是復雜點是吧?但是有了decltype&auto后,foreach功能可以用程序庫或宏的形式被模擬,BOOST_FOREACH就是這么做的。具體模擬的方式<<proposal for new for-loop>>提案寫的很清楚了。
    同時,假如lambda提案要是能再被通過的話,那就真的要開心了:
for_each(
  m_vecData, 
  
<>(item) extern(param)
  {
    
if(!item.IsBusy())
        item.DoSomeThing(param);
  }
);
    Cool!

    不過,VC++2008倒是增加了foreach功能,不過關鍵字不是foreach,而是for each,這個讓人有點郁悶.要用的時候最好用宏定義替換一下,免得可移植性上出現問題.

posted @ 2007-09-26 19:51 沐楓 閱讀(17019) | 評論 (11)編輯 收藏

2007年8月14日 #

關于.net方面,已經有許多人在關注了,我就關注一下,VC2008方面的新東西吧。
1. 暈倒,實證后,沒有增加tr1庫(僅增加了tr1::hexfloat).
2. 對于模板的>>符號,中間不再需要空格了。
3. 增加了for each(T& in A){}語法--這個不算是改進吧,估計是為了與.NET一起工作的產物。

這是今天下午初步掃一眼VC2008中Native C++后的感覺。
同時,標準庫已不再支持Win95/98/me和NT4了。

至于C++/CLR,一個重要的部份就是STL/CLR。
posted @ 2007-08-14 00:40 沐楓 閱讀(2964) | 評論 (6)編輯 收藏

2007年7月21日 #

這是入門級的隨筆,說的是函數對象的定義,使用,以及與函數指針,成員函數指針的關系。  閱讀全文
posted @ 2007-07-21 21:36 沐楓 閱讀(1273) | 評論 (4)編輯 收藏

2007年5月23日 #

boost 1.34 終于簡化了內嵌python的支持。
還支持了python2.5。
在中文windows下用vc8編譯boost的過程中,雖然仍有代碼頁字符警告,但是可以正常編譯成功,不再象1.33.1那樣造成正則表達式庫不修改源碼不能夠編譯通過的問題了。

下面的例子是從boost文檔中來的:
#include <iostream>
#include 
<string>
#include 
<boost/python.hpp>
#include 
<boost/ref.hpp>
#include 
<vector>
using namespace boost::python;

void greet()
{
    
object main = import("__main__");
    
object global(main.attr("__dict__"));

    
// Define greet function in Python.
    object result = exec(
        
"def greet(a):               \n"
        
"   return 'Hello %s from Python!' % a \n",
        global, global);

    
object greet = global["greet"];

    list lst;
    lst.append(
1);
    lst.append(
2);

    
object r = greet(lst);

    std::
string message = extract<std::string>(r);
    std::cout 
<< message << std::endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
    Py_Initialize();
    greet();
    system(
"Pause");
    
return 0;
}

BTW:
  我用vc8編譯了全部的boost,然后,include加上lib目錄(內僅有lib和dll文件),合計2.68GB。

posted @ 2007-05-23 12:58 沐楓 閱讀(1098) | 評論 (0)編輯 收藏

2007年5月13日 #

昨天,boost終于發布了1.34版本。該版本新增加了幾個內容:
1. BOOST_FOREACH 宏
  一直對于C++的iterator枚舉元素造成的bad smell感到無奈,同時,許多語言都增加了foreach機制。終于,boost增加了這個枚舉工具。從此,C++的枚舉不再難看。如:

#define foreach BOOST_FOREACH
short array_short[] = { 123 };
foreachshort & i, array_short )
{
    
++i;
}

  BOOST_FOREACH宏大大改良了代碼可讀性。

  上述程序執行后,array_short的內容為:{2,3,4}。 

2. 狀態圖
  隨著工作流(WorkFlow)的流行,Boost也加入了狀態機。這對于程序結構的優化,將是一個好的補充。
3. Tr1
  隨著C++0x的進展,Tr1已經被通過。下一次Boost可能將增加Tr2了。
4. Typeof 庫
  C++0x中的auto的替代品。時常關心C++0x進展的人就會知道auto的作用,現在終于可以提前使用了。只是沒有auto漂亮,目前也僅能如此了,畢竟它現在能工作。
5. Xpressive庫
  屬于C++的正則表達式庫。以前都是用字串來保存正則表達式,現在終于可以用C++的表達式來寫正則了。

http://www.boost.org

posted @ 2007-05-13 22:24 沐楓 閱讀(1439) | 評論 (0)編輯 收藏

2006年8月8日 #

摘要:  在這里,我想向大家介紹如何進行Lua程序設計。

全文:Lua腳本入門
posted @ 2006-08-08 13:09 沐楓 閱讀(1864) | 評論 (0)編輯 收藏

2006年6月29日 #

用bitset進行2進制輸入輸出
posted @ 2006-06-29 10:14 沐楓 閱讀(2234) | 評論 (1)編輯 收藏

2006年4月6日 #

匯編語言沒有我想象的那么低級,它已經具備了不少高級語言的特性,代碼也變得清晰,層次清楚,易于維護了。
全文見:匯編語言的Hello World
posted @ 2006-04-06 12:05 沐楓 閱讀(1089) | 評論 (1)編輯 收藏

2006年3月13日 #

  C語言的指針相當的靈活方便,但也相當容易出錯。許多C語言初學者,甚至C語言老鳥都很容易栽倒在C語言的指針下。但不可否認的是,指針在C語言中的位置極其重要,也許可以偏激一點的來說:沒有指針的C程序不是真正的C程序。
  然而C++的指針卻常常給我一種束手束腳的感覺。C++比C語言更加強調強類型,強調類型安全,強調編譯時檢查。因此,對于C語言中最容易錯用的指針,更是不能放過:C++的指針被分成數據指針,數據成員指針,函數指針,成員函數指針,而且不能隨便相互轉換。而且這些指針的聲明格式都不一樣:

數據指針 T *
成員數據指針 T::*
函數指針 R (*)(...)
成員函數指針 R (T::*)(...)

  盡管C++中仍然有萬能指針void*,但它卻屬于被批斗的對象,而且再也不能“萬能”了。它不能轉換成成員指針。

  這樣一來,C++的指針就變得很尷尬:我們需要一種指針能夠指向同一類型的數據,不管這個數據是普通數據,還是成員數據;我們更需要一種指針能夠指向同一類型的函數,不管這個函數是靜態函數,還是成員函數。但是沒有,至少從現在的C++標準中,還沒有看到。

全文見 《C++指針探討 (三) 成員函數指針

posted @ 2006-03-13 16:44 沐楓 閱讀(961) | 評論 (0)編輯 收藏

2005年12月17日 #

在C/C++中,數據指針是最直接,也最常用的,因此,理解起來也比較容易。而函數指針,作為運行時動態調用(比如回調函數 CallBack Function)是一種常見的,而且是很好用的手段。

注:這一部份沒什么價值,純是為了引出下一節的內容。

請點此處閱讀全文:C++指針探討 (二) 函數指針
posted @ 2005-12-17 11:53 沐楓 閱讀(1190) | 評論 (0)編輯 收藏

2005年11月30日 #

指針,在C/C++語言中一直是很受寵的;幾乎找不到一個不使用指針的C/C++應用。用于存儲數據和程序的地址,這是指針的基本功能。用于指向整型數,用整數指針(int*);指向浮點數用浮點數指針(float*);指向結構,用對應的結構指針(struct xxx *);指向任意地址,用無類型指針(void*)。
本文先探討C++中用于存儲各種類型數據的指針。

——全文請見:C++指針探討 (一)數據指針
posted @ 2005-11-30 11:12 沐楓 閱讀(904) | 評論 (0)編輯 收藏

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲男人的天堂在线| 久久亚洲一区| 国产精品久久久久久久久免费樱桃| 亚洲黄色免费网站| 欧美黄色一级视频| 欧美v国产在线一区二区三区| 亚洲国产婷婷| 亚洲精品一区二区网址| 欧美日韩一区在线视频| 小处雏高清一区二区三区| 午夜精品视频在线观看| 狠狠色狠狠色综合日日tαg| 欧美成人按摩| 欧美日韩亚洲在线| 欧美在线观看一区二区三区| 久久尤物视频| 一区二区三区日韩在线观看| 午夜精品在线观看| 亚洲国产成人精品视频| 最新国产乱人伦偷精品免费网站| 久久精品国产亚洲5555| 亚洲欧洲精品成人久久奇米网| 日韩视频在线观看国产| 国产女人精品视频| 欧美激情欧美狂野欧美精品 | 美女国产一区| 欧美特黄一级大片| 久久免费高清视频| 欧美日韩理论| 久热精品在线| 国产精品久久夜| 欧美大片一区| 国产亚洲午夜| 中文av字幕一区| 亚洲日本免费电影| 欧美中文字幕视频| 亚洲调教视频在线观看| 一本久道久久综合中文字幕| 一区二区三区四区蜜桃| 久久av资源网| 亚洲一区二区在线视频 | 亚洲区国产区| 伊人男人综合视频网| 亚洲性图久久| 一区二区三区福利| 欧美sm极限捆绑bd| 女女同性精品视频| 国产在线高清精品| 亚洲欧美日韩区| 亚洲视频一二区| 欧美国产日本| 亚洲福利视频免费观看| 尤物在线精品| 久久九九免费| 久久中文在线| 国内伊人久久久久久网站视频| 亚洲在线中文字幕| 亚洲欧美国产高清| 国产精品s色| 夜夜爽www精品| 亚洲一区二区在线播放| 欧美日韩一区二区三区高清| 亚洲片区在线| 夜夜爽99久久国产综合精品女不卡| 麻豆91精品91久久久的内涵| 欧美aaaaaaaa牛牛影院| 在线观看欧美成人| 可以免费看不卡的av网站| 嫩草影视亚洲| 亚洲毛片在线观看.| 欧美精品大片| 99精品欧美一区| 亚洲主播在线播放| 国产区精品视频| 欧美一区二区女人| 美女主播一区| 亚洲人成毛片在线播放| 欧美精品999| 一区二区三区欧美在线| 欧美一级二级三级蜜桃| 国产在线播放一区二区三区| 久久一区二区精品| 亚洲精品乱码| 香蕉久久夜色精品国产| 国产综合久久久久久鬼色| 久久精精品视频| 亚洲国产一区二区三区青草影视| 一区二区三区日韩| 国产精品一区久久久久| 久久先锋资源| 一区二区激情| 久久影视三级福利片| 亚洲三级免费| 国产精品久久久久毛片软件| 久久精彩视频| 日韩亚洲欧美在线观看| 欧美一级专区免费大片| 亚洲黄一区二区三区| 欧美午夜久久| 久久综合九色综合欧美狠狠| 99视频一区二区| 看片网站欧美日韩| 亚洲一卡二卡三卡四卡五卡| 国产在线视频欧美| 欧美日韩综合不卡| 久久婷婷一区| 亚洲精品一区二区三区99| 欧美视频免费在线观看| 99国产一区| 美日韩精品免费| 亚洲一区二区三区成人在线视频精品| 国产欧美综合一区二区三区| 欧美极品在线播放| 久久久精彩视频| 亚洲一区欧美一区| 亚洲精品裸体| 欧美凹凸一区二区三区视频| 午夜精品久久久久久久久久久久 | 亚洲欧美日韩一区二区在线| 在线视频国产日韩| 国产欧美一区二区三区久久人妖| 欧美黑人在线观看| 久久午夜羞羞影院免费观看| 欧美一区二区在线播放| 亚洲先锋成人| 日韩午夜精品视频| 亚洲欧洲精品一区| 欧美成人午夜影院| 久久免费视频在线观看| 欧美一级在线视频| 亚洲午夜日本在线观看| 一本色道久久88综合日韩精品 | 国产日韩精品入口| 国产精品日韩一区二区| 欧美视频福利| 欧美三级在线| 欧美日韩麻豆| 欧美三级视频在线播放| 欧美日韩精品欧美日韩精品| 欧美激情第二页| 欧美大片免费看| 欧美风情在线观看| 欧美激情片在线观看| 欧美福利视频一区| 欧美精品日韩三级| 欧美伦理影院| 欧美日韩一区二区视频在线| 欧美日韩在线播放| 欧美亚洲成人精品| 国产精品毛片在线| 国产视频一区在线观看| 国产一区二区精品久久| 狠久久av成人天堂| 最新中文字幕亚洲| 亚洲天堂免费观看| 欧美中文字幕在线播放| 久久久不卡网国产精品一区| 久久夜色精品| 亚洲电影在线观看| 亚洲精品一区在线观看香蕉| 中国女人久久久| 欧美一区二区三区在线免费观看 | 一区二区三区国产精品| 日韩视频一区二区| 午夜精品99久久免费| 欧美在线观看一区二区| 免费观看成人| 欧美日韩亚洲一区在线观看| 国产手机视频精品| 亚洲电影第三页| 亚洲视频在线二区| 久久国产一区二区| 亚洲第一视频| 一区二区三区高清不卡| 久久精品一区二区三区中文字幕| 欧美成人免费网| 国产精品一区二区黑丝| 在线免费观看一区二区三区| 一区二区精品在线| 好吊日精品视频| 亚洲天堂av在线免费| 日韩一级成人av| 久久精品二区三区| 欧美日韩中文字幕精品| 在线观看三级视频欧美| 亚洲伊人一本大道中文字幕| 开元免费观看欧美电视剧网站| 亚洲精品国产精品国自产观看浪潮 | 一区二区视频在线观看| 这里只有精品视频| 久久综合九色九九| 中文国产一区| 欧美激情第10页| 狠狠入ady亚洲精品| 亚洲欧美日韩爽爽影院| 亚洲精品乱码久久久久久| 久久精品视频一| 国产精品美女xx| 99国产精品久久| 欧美不卡视频一区|