亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

NDK 數據結構之隊列與棧等的實現

2020-01-26 13:52:08
字體:
來源:轉載
供稿:網友

NDK 數據結構之隊列與棧等的實現

com_tz_ndk_cpp_NDKCpp.h

/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_tz_ndk_cpp_NDKCpp */  #ifndef _Included_com_tz_ndk_cpp_NDKCpp #define _Included_com_tz_ndk_cpp_NDKCpp #ifdef __cplusplus extern "C" { #endif /*  * Class:   com_tz_ndk_cpp_NDKCpp  * Method:  callCppTest  * Signature: ()V  */ JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppQueue  (JNIEnv *, jobject);   JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppQueuePriority     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppStack     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppList     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppListDelete     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppListInsert     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSet     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSetReverse     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSetSort     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSetFind     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMultiSet     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMap     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMapDelete     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMapFind     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMultiMap     (JNIEnv *, jobject);  JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppVectorCopy     (JNIEnv *, jobject);  #ifdef __cplusplus } #endif #endif 

com_tz_ndk_cpp_NDKCpp.cpp

#include <iostream> #include <string> #include <android/log.h> #include "com_tz_ndk_cpp_NDKCpp.h"  using namespace std;  //1.C++語言:queue隊列-基本使用 #include <queue> JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppQueue     (JNIEnv *, jobject){   //初始化   queue<char> q;   //添加元素   q.push('A');   q.push('B');   q.push('C');   //添加頭部 //  q.front() = 'z';   //添加尾部 //  q.back() = 'D';    //刪除操作   while (!q.empty()){     __android_log_print(ANDROID_LOG_INFO,"main","值: %c",q.front());     //刪除     q.pop();   } }   //2.C++語言:queue隊列-優先級 JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppQueuePriority     (JNIEnv *, jobject){   //2.1 添加元素(默認是按照添加的順序排列) //  queue<int> q; //  q.push(10); //  q.push(50); //  q.push(20); //  q.push(5); //  //打印 //  while (!q.empty()){ //    __android_log_print(ANDROID_LOG_INFO,"main","值: %d",q.front()); //    q.pop(); //  }    //2.2 最大值優先級隊列(從大到小排列) //  priority_queue<int> pq1; //  pq1.push(10); //  pq1.push(50); //  pq1.push(20); //  pq1.push(5); //  while (!pq1.empty()){ //    __android_log_print(ANDROID_LOG_INFO,"main","值: %d",pq1.top()); //    pq1.pop(); //  }    //2.3 最小值優先級隊列   //注意:不同額編譯器對語法檢查有差別   //在AS中進行NDK開發>>符號認為運算符,所以為了避免出現這樣的情況,請用空格分離'> >'   priority_queue<int,vector<int>,greater<int> > pq1;   pq1.push(10);   pq1.push(50);   pq1.push(20);   pq1.push(5);   while (!pq1.empty()){     __android_log_print(ANDROID_LOG_INFO,"main","值: %d",pq1.top());     pq1.pop();   } }    //3.C++語言:stack棧-基本使用 #include <stack> JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppStack     (JNIEnv *, jobject){   stack<int> st;   st.push(10);   st.push(20);   st.push(30);    while (!st.empty()){     __android_log_print(ANDROID_LOG_INFO,"main","值: %d",st.top());     st.pop();   } }   //4.C++語言:list-基本使用 #include <list> JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppList     (JNIEnv *, jobject){   list<int> lt;   //從頭部添加   lt.push_front(10);   lt.push_front(20);   lt.push_front(30);   //從尾部添加   lt.push_back(40);   lt.push_back(50);   lt.push_back(60);    //循環遍歷   for (list<int>::iterator it = lt.begin() ; it != lt.end() ; it++){     __android_log_print(ANDROID_LOG_INFO,"main","值:%d",*it);   }    list<int>::iterator it = lt.begin();   //連續相加允許(++)   //支持'++'、'--'運算符   it++;   it--;   //注意:不支持間斷   //不支持'+'、'-'運算度 //  it = it - 1;  }   //5.C++語言:list-刪除 JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppListDelete     (JNIEnv *, jobject){   list<int> lt;   //從頭部添加   lt.push_front(10);   lt.push_front(20);   lt.push_front(30);   //從尾部添加   lt.push_back(40);   lt.push_back(50);   lt.push_back(60);    //方式一 //  list<int>::iterator it = lt.begin(); //  it++; //  //刪除:刪除第二個元素 //  lt.erase(it);    //方式二   //刪除第二個元素(直接根據內容刪除) //  lt.remove(20);    //方式三:區間刪除   //開始位置   list<int>::iterator it_begin = lt.begin();   //結束位置   list<int>::iterator it_end = lt.begin();   it_end++;   it_end++;   //刪除元素(如果已經被刪除的元素不能夠在刪除)   lt.erase(it_begin,it_end);    //循環遍歷   for (list<int>::iterator it = lt.begin() ; it != lt.end() ; it++){     __android_log_print(ANDROID_LOG_INFO,"main","值:%d",*it);   } }    //6.C++語言:list-插入 JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppListInsert     (JNIEnv *, jobject){   list<int> lt;   //從尾部添加   lt.push_back(40);   lt.push_back(50);   lt.push_back(60);    //插入   lt.insert(lt.begin(),30);   //循環遍歷   for (list<int>::iterator it = lt.begin() ; it != lt.end() ; it++){     __android_log_print(ANDROID_LOG_INFO,"main","值:%d",*it);   } }   //7.C++語言:set-基本使用(元素唯一)-默認從小到大排列 //特點一:元素唯一 //特點二:默認從小到大排列 #include <set> JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSet     (JNIEnv *, jobject){   set<int> st;   st.insert(40);   st.insert(10);   st.insert(30);   st.insert(20);    //刪除   set<int>::iterator it = st.begin();   st.erase(it);    for (set<int>::iterator it = st.begin() ; it != st.end() ; it++){     __android_log_print(ANDROID_LOG_INFO,"main","值:%d",*it);   }  }   //8.C++語言:set-基本使用(元素唯一)-從大到小排列 //set<int,greater<int>> JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSetReverse     (JNIEnv *, jobject){   set<int,greater<int> > st;   st.insert(40);   st.insert(10);   st.insert(30);   st.insert(20);     for (set<int>::iterator it = st.begin() ; it != st.end() ; it++){     __android_log_print(ANDROID_LOG_INFO,"main","值:%d",*it);   } }    //9.C++語言:set-自定義排序規則 //需求:根據學生的成績進行排序 class Student{ private:   char* name;   int score; public:   Student(char* name,int score){     this->name = name;     this->score = score;   }   int getScore(){     return this->score;   }   void printStudent(){     __android_log_print(ANDROID_LOG_INFO,"main","姓名: %s, 成績: %d",this->name,this->score);   } }; //仿函數 struct Soft{   //方式一:不寫常量 //  bool operator()(Student &left,Student &right){ //    return left.getScore() < right.getScore(); //  }   //方式二:const修飾   bool operator()(const Student &left,const Student &right){     //類型轉換     Student stu_left = const_cast<Student&>(left);     Student stu_right = const_cast<Student&>(right);     return stu_left.getScore() < stu_right.getScore();   } }; JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSetSort     (JNIEnv *, jobject){   set<Student,Soft> st;   st.insert(Student("小宇",50));   st.insert(Student("夢想",59));   st.insert(Student("song",55));   st.insert(Student("遠方",58));   st.insert(Student("石橋中化妖",40));    for (set<Student>::iterator it = st.begin() ; it != st.end() ; it++){     Student stu = const_cast<Student&>(*it);     stu.printStudent();   }  }  //10.C++語言:set-查找 JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppSetFind     (JNIEnv *, jobject){   set<int> st;   st.insert(10);   st.insert(20);   st.insert(30);   st.insert(40);   st.insert(50);   st.insert(60);   st.insert(70);    //方式一   //查找等于30元素   //st.find(2);    //方式二   //查找等于或者小余35元素   //如果存在你輸入的值30,那么就返回當前值30(例如:30)   //如果不存在你查找的值31,那么返回大于31的最近的一個元素指針   set<int>::iterator it_lower = st.lower_bound(31);   __android_log_print(ANDROID_LOG_INFO,"main","查找結果: %d",*it_lower);    //如果存在你查找的值30,那么就返回大于30最近的一個元素指針40   //如果不存在你查找的值31,那么就返回大于31最近的一個元素的指針40   set<int>::iterator it_upper = st.upper_bound(31);   __android_log_print(ANDROID_LOG_INFO,"main","查找結果: %d",*it_upper);    //方式三:既要返回最小也要最大   pair<set<int>::iterator,set<int>::iterator> p = st.equal_range(30);   //獲取返回的元素   __android_log_print(ANDROID_LOG_INFO,"main","小: %d",*p.first);   __android_log_print(ANDROID_LOG_INFO,"main","大: %d",*p.second);  }   //11.C++語言:multiset-基本使用 //允許存儲重復元素 //默認升序排列 JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMultiSet     (JNIEnv *, jobject){   //升序 //  multiset<int> mst; //  mst.insert(10); //  mst.insert(20); //  mst.insert(30); //  mst.insert(10); // //  for (multiset<int>::iterator it = mst.begin() ; it != mst.end() ; it++){ //    __android_log_print(ANDROID_LOG_INFO,"main","值: %d",*it); //  }    //降序 //  multiset<int,greater<int> > mst; //  mst.insert(10); //  mst.insert(20); //  mst.insert(30); //  mst.insert(10); // //  for (multiset<int>::iterator it = mst.begin() ; it != mst.end() ; it++){ //    __android_log_print(ANDROID_LOG_INFO,"main","值: %d",*it); //  }    //自定義排序方式   multiset<Student,Soft> mst;   mst.insert(Student("小宇",50));   mst.insert(Student("夢想",59));   mst.insert(Student("song",55));   mst.insert(Student("遠方",58));   mst.insert(Student("石橋中化妖",40));   mst.insert(Student("Dream",40));   for (multiset<Student>::iterator it = mst.begin() ; it != mst.end() ; it++){     Student stu = const_cast<Student&>(*it);     stu.printStudent();   } }    //12.C++語言:map-基本使用 #include <map> #include <string> JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMap     (JNIEnv *, jobject){   map<int,string> mp;   //方式一:插入數據pair   mp.insert(pair<int,string>(01,"陳國軍"));   mp.insert(pair<int,string>(02,"Mr.Sunday"));   mp.insert(pair<int,string>(03,"Studio"));   mp.insert(pair<int,string>(04,"余祚寧"));    //方式二:如果key存在,那么就不添加同時不覆蓋,如果不存在,就添加   pair<map<int,string>::iterator, bool> result = mp.insert(map<int,string>::value_type(04,"相約98"));   if(result.second){     __android_log_print(ANDROID_LOG_INFO,"main","添加成功!");   }else{     __android_log_print(ANDROID_LOG_INFO,"main","已存在,添加失敗!");   }    //方式三:   mp.insert(make_pair(05,"定定"));    //方式四:如果key存在,重復添加會覆蓋,如果不存在,那就直接添加   mp[5] = "石橋中化妖";   mp[6] = "定定";    for (map<int,string>::iterator it = mp.begin() ; it != mp.end() ; it++){     //獲取key:it->first     __android_log_print(ANDROID_LOG_INFO,"main","key: %d",it->first);     //獲取value:it->second     __android_log_print(ANDROID_LOG_INFO,"main","value: %s",it->second.c_str());   }  }    //13.C++語言:map-刪除 JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMapDelete     (JNIEnv *, jobject){   map<int,string> mp;   mp.insert(pair<int,string>(01,"陳國軍"));   mp.insert(pair<int,string>(02,"Mr.Sunday"));   mp.insert(pair<int,string>(03,"Studio"));   mp.insert(pair<int,string>(04,"余祚寧"));    //刪除   map<int,string>::iterator it = mp.begin();   mp.erase(it);    //打印   for (map<int,string>::iterator it = mp.begin() ; it != mp.end() ; it++){     //獲取key:it->first     __android_log_print(ANDROID_LOG_INFO,"main","key: %d",it->first);     //獲取value:it->second     __android_log_print(ANDROID_LOG_INFO,"main","value: %s",it->second.c_str());   } }    //14.C++語言:map-查找(equal_range) JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMapFind     (JNIEnv *, jobject){   map<int,string> mp;   mp.insert(pair<int,string>(01,"陳國軍"));   mp.insert(pair<int,string>(02,"Mr.Sunday"));   mp.insert(pair<int,string>(03,"Studio"));   mp.insert(pair<int,string>(04,"余祚寧"));    //獲取大于或者等于2的元素   pair<map<int,string>::iterator,map<int,string>::iterator> p = mp.equal_range(2);   //判斷是否存在元素   if(p.first != mp.end()){     //等于2     //獲取key:it->first     __android_log_print(ANDROID_LOG_INFO,"main","key: %d",p.first->first);     //獲取value:it->second     __android_log_print(ANDROID_LOG_INFO,"main","value: %s",p.first->second.c_str());      //大于2元素     //獲取key:it->first     __android_log_print(ANDROID_LOG_INFO,"main","key: %d",p.second->first);     //獲取value:it->second     __android_log_print(ANDROID_LOG_INFO,"main","value: %s",p.second->second.c_str());   } }    //15.C++語言:multimap-一對多 //需求:一個用戶對應多個訂單 class Order{ private:   char* name;   int num; public:   Order(char* name,int num){     this->name = name;     this->num = num;   }   void printOrder(){     __android_log_print(ANDROID_LOG_INFO,"main","訂單名稱:%s, 訂單號:%d",this->name,this->num);   } }; JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppMultiMap     (JNIEnv *, jobject){    multimap<string,Order> mst;   mst.insert(make_pair("陳國軍",Order("男士外套",01)));   mst.insert(make_pair("陳國軍",Order("戶外跑鞋",02)));    mst.insert(make_pair("夢想",Order("女士外套",03)));   mst.insert(make_pair("夢想",Order("女士高跟鞋",02)));    mst.insert(make_pair("Dream",Order("女士紗衣",03)));   mst.insert(make_pair("Dream",Order("女士布鞋",02)));   mst.insert(make_pair("Dream",Order("女士外套",02)));   mst.insert(make_pair("Dream",Order("女士褲子",02)));    //遍歷 //  for (multimap<string,Order>::iterator it = mst.begin() ; it != mst.end() ; it++){ //    //獲取key:it->first //    __android_log_print(ANDROID_LOG_INFO,"main","key: %s",it->first.c_str()); //    //獲取value:it->second //    Order order = const_cast<Order&>(it->second); //    order.printOrder(); //  }     //需求:只獲取"夢想"訂單   //獲取訂單的數量   int count = mst.count("夢想");   //打印"夢想"訂單:找到   multimap<string,Order>::iterator it = mst.find("夢想");   //循環遍歷打印   //計數   int i = 0;   while (it != mst.end() && i < count){     __android_log_print(ANDROID_LOG_INFO,"main","key: %s",it->first.c_str());     Order order = const_cast<Order&>(it->second);     order.printOrder();     i++;     it++;   } }    //16.C++語言:vector-淺拷貝和深拷貝 class User{ private:   char* name;   int age; public:   //淺拷貝(默認就是淺拷貝)   User(char* name,int age){     //動態分配內存     this->name = new char[strlen(name)+1];     strcpy(this->name,name);      this->age = age;   }   ~User(){     if(this->name != NULL){       delete[] this->name;       this->name = NULL;       this->age = 0;     }   }   void printUser(){     __android_log_print(ANDROID_LOG_INFO,"main","名稱:%s, 年齡: %d",this->name,this->age);   }    //深拷貝   User(const User &user){     //先釋放內存     if(this->name != NULL){       delete[] this->name;       this->name = NULL;       this->age = 0;     }     //動態分配內存     this->name = new char[strlen(user.name)+1];     strcpy(this->name,user.name);     this->age = user.age;   }    User& operator=(User &user){     if(this->name != NULL){       delete[] this->name;       this->name = NULL;       this->age = 0;     }     //動態分配內存     this->name = new char[strlen(user.name)+1];     strcpy(this->name,user.name);     this->age = user.age;     return *this;   }  }; //class User{ //private: //  string* name; //  int age; //public: //  //淺拷貝(默認就是淺拷貝) //  User(string name,int age){ //    //動態分配內存 //    this->name = new string(const_cast<string&>(name)); //    this->age = age; //  } //  ~User(){ //    if(this->name != NULL){ //      delete this->name; //      this->name = NULL; //      this->age = 0; //    } //  } //  void printUser(){ //    __android_log_print(ANDROID_LOG_INFO,"main","名稱:%s, 年齡: %d",this->name,this->age); //  } // //  //深拷貝 //  User(const User &user){ //    //先釋放內存 //    if(this->name != NULL){ //      delete this->name; //      this->name = NULL; //      this->age = 0; //    } //    //動態分配內存 //    this->name = new string(const_cast<string&>(user.name)); //    this->age = age; //  } // //  User& operator=(User &user){ //    if(this->name != NULL){ //      delete this->name; //      this->name = NULL; //      this->age = 0; //    } //    //動態分配內存 //    this->name = new string(const_cast<string&>(user.name)); //    this->age = age; //    return *this; //  } // ////}; JNIEXPORT void JNICALL Java_com_tz_ndk_cpp_NDKCpp_callCppVectorCopy     (JNIEnv *, jobject){   vector<User> vt;   User user("石橋中化妖",18);   //實參作為形參,需要調用拷貝函數,然后默認是淺拷貝   vt.push_back(user);    //解決方案:深拷貝   for (vector<User>::iterator it = vt.begin() ; it != vt.end() ; it++){     User order = const_cast<User&>(*it);     order.printUser();   }    //作業:string如何深拷貝(稍微麻煩一點) } 

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情videos| 久久九九国产精品怡红院| 色一区av在线| 国产精品成人免费视频| 98精品在线视频| 国产成人综合亚洲| 国产精品扒开腿爽爽爽视频| 热久久99这里有精品| 欧美亚洲日本黄色| 精品动漫一区二区| 亚洲3p在线观看| 日韩有码片在线观看| 最新国产精品亚洲| 亚洲一区二区久久久久久久| 日韩精品一区二区三区第95| 51色欧美片视频在线观看| 91高清视频在线免费观看| 亚洲伊人成综合成人网| 亚洲成人性视频| 欧美一级在线播放| 欧美亚洲国产视频小说| 日韩经典中文字幕在线观看| 最近2019年中文视频免费在线观看| 欧美在线一区二区视频| 色黄久久久久久| 欧美一级黑人aaaaaaa做受| 久久久久久香蕉网| 日韩高清电影好看的电视剧电影| 欧美极品欧美精品欧美视频| 国自产精品手机在线观看视频| 国产午夜精品理论片a级探花| 欧美性视频在线| 国产91精品视频在线观看| 色综合亚洲精品激情狠狠| 久热精品视频在线观看| 97国产在线观看| 亚洲自拍偷拍色片视频| 国产成人拍精品视频午夜网站| 91sao在线观看国产| 九九热精品视频在线播放| 爽爽爽爽爽爽爽成人免费观看| 在线观看久久久久久| 992tv在线成人免费观看| 奇米成人av国产一区二区三区| 日本免费久久高清视频| 性欧美办公室18xxxxhd| 97在线精品视频| 91综合免费在线| 久久高清视频免费| 亚洲成av人影院在线观看| 久久亚洲综合国产精品99麻豆精品福利| 午夜免费久久久久| 久久精品国产成人| 日韩精品中文字幕在线播放| 精品性高朝久久久久久久| 久久九九免费视频| 国产精品jizz在线观看麻豆| 精品久久久久久久久久国产| 国产精品成人av在线| 欧美亚洲激情视频| 91精品综合久久久久久五月天| 亚洲影院色在线观看免费| 国产区精品在线观看| 国产精品美女久久久久久免费| 55夜色66夜色国产精品视频| 日韩欧美在线免费| 91在线|亚洲| 中文字幕在线成人| 国产精品va在线播放| 国产激情999| 欧美大成色www永久网站婷| 按摩亚洲人久久| 亚洲精品99久久久久中文字幕| 国产精品视频在线播放| 欧美最近摘花xxxx摘花| 国产一区视频在线播放| 狠狠躁天天躁日日躁欧美| 97视频在线观看亚洲| 国产91露脸中文字幕在线| 色婷婷亚洲mv天堂mv在影片| 国产精品亚洲美女av网站| 久久99久久99精品中文字幕| 亚洲欧洲xxxx| 欧洲成人在线视频| 色综合久久久888| 国产成人涩涩涩视频在线观看| 国产免费一区二区三区在线能观看| 久久久久久免费精品| 不卡在线观看电视剧完整版| 欧美激情2020午夜免费观看| 久久久久999| 黄色一区二区在线观看| 国产精品男人的天堂| 欧美高跟鞋交xxxxxhd| 久久久久久噜噜噜久久久精品| 精品国产91久久久| 国产日本欧美一区二区三区在线| 亚洲aa中文字幕| 久久这里只有精品99| 亚洲成人精品视频| 日韩精品在线免费观看视频| 亚洲综合在线播放| 亚洲综合大片69999| 日韩精品免费在线视频观看| 亚洲国产成人精品久久| 亚洲精品电影在线| 亚洲人午夜精品免费| 欧美黑人极品猛少妇色xxxxx| 国产精品99久久久久久久久| 欧美性20hd另类| 久久综合色影院| 九色精品美女在线| 久久久91精品国产一区不卡| 日韩三级成人av网| 久久99青青精品免费观看| 91精品视频在线播放| 欧美电影免费观看| 日韩精品在线观看视频| 久久国产视频网站| 91精品久久久久久久久久另类| 91情侣偷在线精品国产| 久久电影一区二区| 日韩在线观看你懂的| 亚洲自拍偷拍在线| 亚洲国产欧美久久| 精品久久久在线观看| 黄网站色欧美视频| 亚洲国产天堂久久综合网| 日韩中文字幕不卡视频| 久久精品国产成人精品| 国产在线拍揄自揄视频不卡99| 色综合久久中文字幕综合网小说| 97香蕉超级碰碰久久免费软件| 国产精品黄色影片导航在线观看| 欧美精品亚州精品| 91九色视频导航| 91在线免费观看网站| 91精品久久久久久久| 在线电影av不卡网址| 9.1国产丝袜在线观看| 欧美不卡视频一区发布| 岛国精品视频在线播放| 国产精品成人久久久久| 日韩精品在线免费| 亚洲一区美女视频在线观看免费| 日韩中文视频免费在线观看| 久久精品国产久精国产一老狼| 中文字幕精品视频| 国产精品jizz在线观看麻豆| 亚洲片国产一区一级在线观看| 久久久免费电影| 欧美一级淫片丝袜脚交| 一区二区欧美亚洲| 国产精品久久网| 亚洲欧美一区二区三区四区| 亚洲人成亚洲人成在线观看| 久久久噜噜噜久久中文字免| 亚洲缚视频在线观看| 亚洲伊人第一页| 欧美精品www在线观看| 欧美大尺度激情区在线播放| 国产视频丨精品|在线观看| 裸体女人亚洲精品一区| 欧美最猛性xxxxx(亚洲精品)|