久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 第五版 部分课后题答案

發布時間:2024/3/24 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 第五版 部分课后题答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? 當時剛學C++的時候買了這本書,一開始前面看的一知半解,索性就先緩緩,等學完學校的C++課程(中途自己也寫了不少c++的代碼),一段時間之后又拿起這本書去看,感覺還是挺有滋味的,這本書對我印象中的C++做了很大的擴展,個人認為這本書不太適合剛學C++就去看,而是寫了一定的代碼,對C++有一個大體的了解之后再去看會別有一番滋味(犇請無視這句話)。在看書的過程中自己也寫了上面的課后練習題,現在整理一下,也跟大家分享一下,下面是9~12 15~16章的課后題編程題的答案

(第八章之前的都沒保存/(ㄒoㄒ)/~~):

當時保存的時候是按節保存的,比如 練習9.3、練習9.4 練習9.5、練習9.6 是在9.2.1節練習里面的題

9.2.1節練習:

<span style="font-size:18px;">#include <iostream> #include <vector>std::vector<int>::iterator fun(std::vector<int>::iterator isb,std::vector<int>::iterator ise,int y){while(isb<ise)if(*(isb)==y)return isb;else isb++;return ise; } int main() {std::vector<int> s={1,2,3};std::vector<int>::iterator is=s.begin();//if(fun(is,s.end(),2)) cout<<"OK"<<endl;is=fun(is,s.end(),2);std::cout<<*is<<std::endl;while(std::cout<<*is<<"#" && (is++)<s.end());return 0; } </span>
9.3.1節練習:

#include <iostream> #include <vector> #include <list> #include <deque>int main() {std::string temp;std::deque<std::string>dq;for(int i=1;i<=3;++i){std::cin>>temp;dq.push_front(temp);}auto x=dq.begin(); //std::deque<std::string>::iterator x;while(x < dq.end() && std::cout<<" "<<*(x++));std::cout<<std::endl;std::list<std::string>l;for(int i=1;i<=3;++i){std::cin>>temp;l.push_front(temp);}auto y=l.begin();while(y!=l.end() && std::cout<<" "<<*(y++)); //list中無 > <操作 使用!=代替std::cout<<std::endl;return 0; }
9.3.3節練習:

#include <iostream> #include <vector> #include <list> #include <deque>int main() {int ia[]={0,1,1,2,3,5,8,13,21,55,89};std::vector<int > vec={0,1,1,2,3,5,8,13,21,55,89};std::list<int > lis={0,1,1,2,3,5,8,13,21,55,89};auto i=vec.begin();while(i!=vec.end())if(*i % 2)i=vec.erase(i);else i++;auto j=lis.begin();while(j!=lis.end())if(*j % 2==0)j=lis.erase(j);else j++;for(auto x:vec) std::cout<<" "<<x;std::cout<<std::endl;for(auto x:lis) std::cout<<" "<<x;std::cout<<std::endl;return 0; }
9.5.3節練習:

練習9.47:

#include <iostream> #include <algorithm>int main() {std::string temp("ab2c3d7R4");std::string digit("0123456789");std::string word;for(int i=0;i<24;++i){word+=(char)('a'+i);word+=(char)('A'+i);}std::string::size_type pos=0;while((pos=temp.find_first_of(word,pos))!=std::string::npos) std::cout<<temp[pos++];std::cout<<std::endl;pos=0;while((pos=temp.find_first_of(digit,pos))!=std::string::npos) std::cout<<temp[pos++];std::cout<<std::endl;pos=0;while((pos=temp.find_first_not_of(digit,pos))!=std::string::npos) std::cout<<temp[pos++];std::cout<<std::endl;pos=0;while((pos=temp.find_first_not_of(word,pos))!=std::string::npos) std::cout<<temp[pos++];std::cout<<std::endl;return 0; }
練習9.49:

#include <iostream>int main() {std::string temp("bdfghijklpqty");std::string s;while(std::cin>>s){std::string::size_type pos=0;while((pos=s.find_first_not_of(temp,pos))!=std::string::npos)std::cout<<s[pos++];std::cout<<std::endl;}return 0; }
練習9.50:

#include <iostream> #include <vector>int main() {std::vector<std::string > vec={"1","2","3","4","5"};int sum1=0;for(auto x:vec) sum1+=stoi(x); //codeblock(12.11)報錯,vs2012也報,本汪編譯器不支持std::cout<<sum1<<std::endl;double sum2=0.0;for(auto x:vec) sum2+=stod(x);std::cout<<sum2<<std::endl;return 0; } 練習9.51:

#include <iostream>class A{public :A(const std::string s="10/12/1994"){std::string sign=" ,/";auto pos=s.find_first_of(sign);month=s.substr(0,pos);day=s.substr(pos+1,s.find_first_of(sign,pos+1)-pos-1);year=s.substr(s.find_last_of(sign)+1);}void print(){std::cout<<month<<" "<<day<<" "<<year<<std::endl;}private:std::string year,day,month; }; int main() {A a;a.print();A b("jan 1/1990");b.print();return 0; } /*#include <iostream> #include <vector> #include <list> #include <deque> #include <algorithm> #include <numeric> #include <cstring>using namespace std; int main() {int a1[]={1,2,3,4,5,6};int a2[sizeof(a1)/sizeof(a1)];auto ret=copy(begin(a1),end(a1),begin(a2));return 0; }*/
練習10.1:

#include <iostream> #include <vector> #include <list> #include <deque> #include <algorithm>using namespace std; int main() {std::vector<int > vec={1,2,3,4,5,6,7,12,3,4,6,7,3,6,9,2,6,3,3,3,3,3,3};std::cout<<count(vec.begin(),vec.end(),3)<<std::endl;std::list<std::string > lis={"q","e","sdg","zvgs","123g","545","qwe","uyt","qwe"};std::cout<<count(lis.begin(),lis.end(),"qwe")<<std::endl;return 0; }
10.2.1節練習:

/* #include <iostream> #include <vector> #include <list> #include <deque> #include <algorithm>using namespace std;class A{public :A(const string s="1/1/1990"):month("jan"),day("1"),year("1994"){string sign=" ,/";auto pos=s.find_first_of(sign);month=s.substr(0,pos);day=s.substr(pos+1,s.find_first_of(sign,pos+1)-pos-1);year=s.substr(s.find_last_of(sign)+1);}void print(){cout<<month<<" "<<day<<" "<<year<<endl;}private:string year,day,month; }; int main() {A a();a.print();// A b("1/1/1990");// b.print();return 0; } */#include <iostream> #include <vector> #include <algorithm> #include <cstring> int main() {std::vector<int > vec={1,2,3,4,5,6,7,8,9};std::cout<<accumulate(vec.cbegin(),vec.cend(),0)<<std::endl;std::vector<std::string > vec_str={"a","b","c","d"};std::cout<<accumulate(vec_str.cbegin(),vec_str.cend(),std::string(""))<<std::endl;//accumulate(,,"");錯誤 const char* 沒有定義+操作//accumulate(,,"hello"); 最后結果是 helloxxxxchar *s=(char *)malloc(10*sizeof(char));char s1[]="heheda",s2[]="heheda";std::cout<<std::equal(s1,s1+strlen(s1),s2)<<std::endl;return 0; } 10.2.2節練習:

#include <iostream> #include <vector> #include <list> #include <algorithm> #include <numeric>int main() { //10.6int num[]={1,2,3,4,5,6};std::fill_n(std::begin(num),std::end(num)-std::begin(num),0);for(auto x:num) std::cout<<x<<" ";std::cout<<std::endl;//10.7 astd::vector<int > vec;std::list<int >lst;int i;while(std::cin>>i) lst.push_back(i);std::copy(lst.cbegin(),lst.cend(),back_inserter(vec)); //vec未申請空間,所以使用插入迭代器for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl;//10.7 bstd::vector<int > vecc;vecc.reserve(10);//雖然分配了內存 但size()=0 vecc.begin()==vecc.end() capacity()=10std::fill_n(vecc.begin(),10,0);for(auto x:vecc) std::cout<<x<<" ";std::cout<<std::endl;return 0; } 10.2.3節練習:

#include <iostream> #include <vector> #include <list> #include <algorithm> #include <numeric>void elimDups(std::vector<std::string > &vec){std::sort(vec.begin(),vec.end());auto uni=std::unique(vec.begin(),vec.end()); //把重復單詞忘末尾放,返回指向不重復范圍的后一個迭代器vec.erase(uni,vec.end());for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl; } int main() {std::vector<std::string> vec={"the","quick","red","fox","jumps","over","the","slow","red","turtle"};elimDups(vec);return 0; } // the quick red fox jumps over the slow red turtle 10.3.1節練習:

#include <iostream> #include <vector> #include <list> #include <algorithm> #include <numeric>void elimDups(std::vector<std::string > &vec){std::sort(vec.begin(),vec.end());auto uni=std::unique(vec.begin(),vec.end()); //把重復單詞忘末尾放,返回指向不重復范圍的后一個迭代器vec.erase(uni,vec.end());for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl; } bool isShortter(std::string a,std::string b){return a.size()<b.size(); }bool islessfive(const std::string &a){return a.length()<5; }int main() {std::vector<std::string> vec={"the","quick","red","fox","jumps","over","the","slow","red","turtle"};elimDups(vec);std::stable_sort(vec.begin(),vec.end(),isShortter);for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl;auto iter=partition(vec.begin(),vec.end(),islessfive);while(iter!=vec.end())std::cout<<*iter++<<" ";std::cout<<std::endl;return 0; } // the quick red fox jumps over the slow red turtle
10.3.2節練習:

練習10.16:

#include <iostream> #include <vector> #include <algorithm>void elimDups(std::vector<std::string > &vec){std::sort(vec.begin(),vec.end());auto uni=std::unique(vec.begin(),vec.end()); //把重復單詞忘末尾放,返回指向不重復范圍的后一個迭代器vec.erase(uni,vec.end());std::cout<<"after unique_sort and erase :"<<std::endl;for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl; }int main() {//10.15int x,y;std::cin>>x>>y;auto fun2=[x](const int y){return x+y;};std::cout<<fun2(y)<<std::endl;//10.16std::vector<std::string> vec={"the","quick","red","fox","jumps","over","the","slow","red","turtle"};elimDups(vec);std::stable_sort(vec.begin(),vec.end(),[](const std::string &a,const std::string &b){return a.size()<b.size();});std::cout<<"after stable_sort:"<<std::endl;for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl;int n;std::cin>>n;auto iter=find_if(vec.begin(),vec.end(),[n](const std::string &s){return s.size()>=n;});auto count=vec.end()-iter;for_each(iter,vec.end(),[](const std::string &s){std::cout<<s<<" ";});std::cout<<std::endl;return 0; } 練習10.18:
#include <iostream> #include <vector> #include <algorithm>void elimDups(std::vector<std::string > &vec){std::sort(vec.begin(),vec.end());auto uni=std::unique(vec.begin(),vec.end()); //把重復單詞忘末尾放,返回指向不重復范圍的后一個迭代器vec.erase(uni,vec.end());std::cout<<"after unique_sort and erase :"<<std::endl;for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl; }int main() {std::vector<std::string> vec={"the","quick","red","fox","jumps","over","the","slow","red","turtle"};elimDups(vec);stable_sort(vec.begin(),vec.end(),[](const std::string &a,const std::string &b){return a.size()<b.size();});std::cout<<"after stable_sort:"<<std::endl;for(auto x:vec) std::cout<<x<<" ";std::cout<<std::endl;int n;std::cin>>n;auto iter=partition(vec.begin(),vec.end(),[n](const std::string &s){return s.size()<n;});auto count=vec.end()-iter;for_each(iter,vec.end(),[](const std::string &s){std::cout<<s<<" ";});std::cout<<std::endl;return 0; } 10.3.3節練習:

#include <iostream> #include <vector> #include <algorithm>int main() {std::vector<std::string> vec={"the","quick","red","fox","jumps","over","the","slow","red","turtle"};auto x=count_if(vec.begin(),vec.end(),[](const std::string &s){return s.size()>=6;});std::cout<<x<<std::endl;int y=0;auto def=[=]()mutable{if(y==0) return true;else{--y;return false;}};return 0; }
10.3.4節練習:

#include <iostream> #include <vector> #include <functional> #include <algorithm>using namespace std::placeholders; // bind_n操作bool check_size(const int &x,std::string::size_type sz){return x>=sz;}int main() {std::vector<int > vec={1,3,6,8,0,3,5,12,4,2};std::string s="woqu";auto f=bind(check_size,_1,s.size());for(auto x:vec)if(f(x)){std::cout<<x<<std::endl;break;}return 0; } 10.4.1節練習:

#include <iostream> #include <list> #include <vector> #include <functional> #include <algorithm>int main() { //10.27std::list<int > lst={1,2,2,2,2,2,2,2,6,8};std::list<int > lst1;unique_copy(lst.begin(),lst.end(),back_inserter(lst1));std::cout<<"old array:";for_each(lst.begin(),lst.end(),[](const int &x){std::cout<<x<<" ";});std::cout<<std::endl;std::cout<<"new array:";for_each(lst1.begin(),lst1.end(),[](const int &x){std::cout<<x<<" ";});std::cout<<std::endl;//10.28 //其中front_inserter報錯 ?inserter 復制失敗std::vector <int > vec={1,2,3,4,5,6,7,8,9};std::vector <int > front_vec,back_vec,rand_vec;auto iter=vec.begin();//copy(vec.begin(),vec.end(),front_inserter(front_vec));copy(vec.begin(),vec.end(),back_inserter(back_vec));copy(vec.begin(),vec.end(),inserter(vec,iter));// std::cout<<"front:";//for_each(front_vec.begin(),front_vec.end(),[](const int &x){std::cout<<x<<" ";});std::cout<<std::endl;std::cout<<"back:";for_each(back_vec.begin(),back_vec.end(),[](const int &x){std::cout<<x<<" ";});std::cout<<std::endl;std::cout<<"rand:";for_each(rand_vec.begin(),rand_vec.end(),[](const int &x){std::cout<<x<<" ";});std::cout<<std::endl;return 0; } 10.4.2節練習:

#include <iostream> #include <vector> #include <iterator> #include <fstream> #include <algorithm>//10.33 void fun(const std::string &inf_file,const std::string &outf1_file,const std::string &outf2_file){std::ifstream inf;inf.open(inf_file);std::istream_iterator<int > inf_iter(inf),eof;std::ofstream outf1;outf1.open(outf1_file);std::ofstream outf2;outf2.open(outf2_file);std::ostream_iterator<int > outf1_iter(outf1),outf2_iter(outf2);while(inf_iter!=eof){if((*inf_iter)%2) outf1<<*inf_iter;else outf2<<*inf_iter;inf_iter++;}std::cout<<"從文件\""<<inf_file<<"\"中讀取數字,奇數已存入\""<<outf1_file<<"\"中,偶數已存入\""<<outf2_file<<"\"中"<<std::endl;inf.close();outf1.close();outf2.close(); }int main() {//10.29std::ifstream inf;inf.open("test.txt");std::istream_iterator<std::string > in_iter(inf); //in_ter 從文件流inf中讀取類型為std::string的值std::istream_iterator<std::string > eof; //文件結束位置std::vector<std::string> vec(in_iter,eof); //把文件的字符串讀入vec中auto iter=vec.begin();while(iter!=vec.end()) std::cout<<*iter++<<" ";std::cout<<std::endl;inf.close();//10.30std::istream_iterator<int > in(std::cin); //in從輸入流cin中讀取類型為int的值std::istream_iterator<int > eof2; //輸入流結束位置std::vector<int > vec2(in,eof2); //輸入的數據讀入vec2sort(vec2.begin(),vec2.end()); //排序std::ostream_iterator<int > out(std::cout," "); //把類型為int的值寫到輸出流out中,每個值后加空格copy(vec2.begin(),vec2.end(),out);//vec2的值讀出到out中std::cout<<std::endl;std::ostream_iterator<int > out2(std::cout," ");unique_copy(vec2.begin(),vec2.end(),out2); //不重復的復制std::cout<<std::endl;//10.33fun("num_in.txt","num_out1.txt","num_out2.txt");return 0; } 10.4.3節練習:

#include <iostream> #include <vector> #include <iterator> #include <algorithm> #include <list>int main() {//10.34 10.35std::vector <int > vec={1,2,3,4,5,6,7,8,9};std::vector<int >::reverse_iterator reiter=vec.rbegin(); //反向迭代器while(reiter!=vec.rend()) std::cout<<*reiter++<<" ";std::cout<<std::endl;std::vector<int >::iterator iter=vec.begin(); //普通迭代器while(iter!=vec.end()) std::cout<<*iter++<<" ";std::cout<<std::endl;//10.36std::list<int > lis={1,2,3,0,6,4,0,1,3,2}; //查找最后一個0,返回其迭代器std::list<int >::reverse_iterator lis_reiter=find(lis.rbegin(),lis.rend(),0);std::cout<<*lis_reiter<<std::endl;//10.37std::vector <int > vec2={1,2,3,4,5,6,7,8,9,10}; // 取其中 3~7 的位置復制給std::liststd::list <int> lis2;auto vec2_iter=vec2.begin();copy(vec2_iter+2,vec2_iter+7,back_inserter(lis2));//后插迭代器實現for(auto x:lis2) std::cout<<x<<" ";std::cout<<std::endl;return 0; } 11.1.1節練習:

#include <iostream> #include <vector> #include <algorithm> #include <map>//algorithm提供的string轉換字母大小寫函數寫法 std::string fun(std::string &s){transform(s.begin(),s.end(),s.begin(), ::tolower);std::string s2;for(auto x:s) if(islower(x)) s2+=x; //去標點return s2; } int main() {std::map<std::string ,size_t > m;std::string word;while(std::cin>>word && word!="end") m[fun(word)]++;for(const auto &x:m)std::cout<<x.first<<" : "<<x.second<<std::endl;return 0; }
11.2.1節練習:

#include <iostream> #include <vector> #include <algorithm> #include <map>int main() {std::map<std::string ,std::vector<std::string > > name;std::string first_name,last_name;while(std::cin>>first_name>>last_name && first_name!="end")(name[first_name]).push_back(last_name);for(auto x:name){std::cout<<x.first<<": "<<std::endl;for(auto y:x.second) std::cout<<y<<" ";std::cout<<std::endl;}return 0; } /* 李 勝 李 冰冰 李 連杰 劉 韶 劉 氓 劉 星 劉 亦菲 張 三豐 張 天澤 張 曉紅 end e */ 11.2.3節練習~練習11.12、練習11.13:

#include <iostream> #include <vector> #include <algorithm> #include <utility> #include <map>int main() {//11.12 11.13std::vector <std::pair<std::string ,int> > vec1,vec2,vec3;std::pair<std::string ,int> pa;while(std::cin>>pa.first>>pa.second){vec1.push_back({pa.first,pa.second});vec2.push_back(std::pair<std::string,int>(pa.first,pa.second));vec3.push_back(pa);}for(auto x:vec1) std::cout<<x.first<<" "<<x.second<<std::endl;return 0; } 練習11.14:

#include <iostream> #include <vector> #include <algorithm> #include <utility> //pair #include <map>int main() {//11.14std::map<std::string ,std::vector<std::pair<std::string,std::string> > > name;std::string first_name;std::pair<std::string,std::string> last_name;while(std::cin>>first_name>>last_name.first>>last_name.second && first_name!="end")(name[first_name]).push_back(last_name);for(auto x:name){std::cout<<x.first<<": "<<std::endl;for(auto y:x.second) std::cout<<y.first<<" "<<y.second<<" ";std::cout<<std::endl;}return 0; } 11.3.2節練習:

#include <iostream> #include <algorithm> #include <map>int main() {//11.20std::map<std::string ,size_t > word_count;std::string word;while(std::cin>>word && word!="end"){std::pair< std::map<std::string ,size_t>::iterator,bool> ite=word_count.insert({word,1});if(!ite.second) ite.first->second++;}for(auto x:word_count)std::cout<<x.first<<" : "<<x.second<<std::endl;//11.23std::multimap<std::string ,std::string> name;std::string first_name,last_name;while(std::cin>>first_name>>last_name && first_name!="end")name.insert({first_name,last_name});for(auto x:name)std::cout<<x.first<<": "<<x.second<<std::endl;return 0; } 11.3.5節練習:

#include <iostream> #include <algorithm> #include <vector> #include <map> #include <set> #include <utility>int main() {//11.31std::multimap<std::string ,std::string > book={{"oyy","c++ prime"},{"oyy","java plus"},{"oyy","english"},{"awei","math"},{"awei","computer"},{"baobao","taijiong"},{"baobao","gangjiong"},};std::string find_name="baoba";auto ite=book.find(find_name);while(ite!=book.end() && ite->first==find_name){ite=book.erase(ite);}for(auto x:book) std::cout<<x.first<<" "<<x.second<<std::endl;return 0; } 11.3.6節練習:

#include <iostream> #include <map> #include <fstream> #include <sstream>int main() { //11.33//讀取轉換規則std::ifstream readfile("test1.txt");std::map<std::string ,std::string> tran;std::string word_first,word_second,temp;while(readfile>>word_first && getline(readfile,word_second))tran[word_first]=word_second.length()==0?word_first:word_second.substr(1);//讀取要轉的內容std::ifstream readfile2("test2.txt");std::string sentc,word;while(getline(readfile2,sentc)){std::istringstream in(sentc);while(in>>word){if(tran.find(word)!=tran.end()) std::cout<<tran[word]<<" ";else std::cout<<word<<" ";}std::cout<<std::endl;}return 0; }/* test1.txt brb be right back k okay? justkey y why r are u you pic picture thk thanks! l8r latertest2.txt where r u y dont u send me a pic k thk l8r*/
12.1.1節練習:

#include <iostream> #include <vector> #include <initializer_list> #include <memory> #include <stdexcept>//12.2 class StrBlob{typedef std::vector<std::string> vstring;public:StrBlob():data(std::make_shared<vstring>()){}StrBlob(std::initializer_list<std::string > lis):data(std::make_shared<vstring>(lis)){}vstring::size_type size()const {return data->size();}void push_back(const std::string &s){data->push_back(s);}void pop_back(){check(0,"pop on empty StrBlob");data->pop_back();}std::string &front(){check(0,"front on empty StrBlob");return data->front();}std::string &back(){check(0,"back on empty StrBlob");return data->back();}private:std::shared_ptr<vstring> data; // emoryvoid check(vstring::size_type i,const std::string &s)const {if(data->size()<=i) throw std::out_of_range(s); // stdexcept} }; int main() {//12.1StrBlob b1{};{StrBlob b2={"a","an","the"};b1=b2;b2.push_back("about");}std::cout<<b1.back()<<std::endl;StrBlob b3{"wo","qu"};std::cout<<b3.back()<<std::endl;return 0; } 12.1.2節練習:

#include <iostream> #include <vector> #include <memory>//12.6 std::vector<int > *new_vecint(){return new std::vector<int>; } void read_data(std::istream &in,std::vector<int> *&pv){ //普通指針 引用指針int x;in>>x;pv->push_back(x); }void print(std::vector<int> *&pv){for(auto x:*pv) std::cout<<x<<" ";std::cout<<std::endl;delete(pv);pv=nullptr; }//12.7 std::shared_ptr <std::vector<int > > ptr_vecint(){ //智能指針return std::make_shared<std::vector<int > > ();//return shared_ptr<vector<int >> (new vector<int>(p)); }void ptr_read_data(std::istream &in,std::shared_ptr<std::vector<int > > &spv){int x;in>>x;spv->push_back(x); } void ptr_print(std::shared_ptr<std::vector<int > > spv){for(auto x:*spv) std::cout<<x<<" ";std::cout<<std::endl; }int main() {//12.6auto pv=new_vecint();for(int i=1;i<=3;++i) read_data(std::cin,pv);print(pv);//12.7auto spv=ptr_vecint();for(int i=1;i<=3;++i) ptr_read_data(std::cin,spv);ptr_print(spv);return 0; } 12.1.6節練習:

#include <iostream> #include <vector> #include <initializer_list> #include <memory> #include <stdexcept> #include <fstream> #include <sstream>class StrBlob{ typedef std::vector<std::string> vstring; public:friend class StrBlobPtr;StrBlob():data(std::make_shared<vstring>()){}StrBlob(std::initializer_list<std::string > lis):data(std::make_shared<vstring>(lis)){}vstring::size_type size()const {return data->size();}void push_back(const std::string &s){data->push_back(s);}void pop_back(){check(0,"pop on empty StrBlob");data->pop_back();}std::string &front(){check(0,"front on empty StrBlob");return data->front();}std::string &back(){check(0,"back on empty StrBlob");return data->back();} private:std::shared_ptr<vstring> data; // memoryvoid check(vstring::size_type i,const std::string &s)const {if(data->size()<=i) throw std::out_of_range(s); //stdexcept} }; //12.19 12.20 class StrBlobPtr{ typedef std::vector<std::string> vstring; public :StrBlobPtr():curr(0){}StrBlobPtr(StrBlob &a,size_t sz=0):wptr(a.data),curr(sz){}std::string &deref() const {auto p=check(curr,"dereference past end");return (*p)[curr];}StrBlobPtr& incur(){check(curr,"increment past end of StrBlobPtr");++curr;return *this;}bool empty(){if(curr < wptr.lock()->size()) return false;return true;} private:std::shared_ptr<vstring> check(size_t i,const std::string &msg)const {auto ret=wptr.lock();if(!ret) throw std::runtime_error("unbound StrBlobPtr");if(ret->size() <= i)throw std::out_of_range(msg);return ret;}std::weak_ptr<vstring> wptr;size_t curr; };int main() {//12.20std::ifstream in("in.txt");std::string word_s;StrBlob sb;while(getline(in,word_s)){ //從文件讀入數據std::stringstream sin(word_s);std::string word;while(sin>>word) sb.push_back(word);sb.push_back("\n");}StrBlobPtr sbp(sb); //使用StrBlob 指針類型輸出StrBlobwhile(!sbp.empty()){std::cout<<sbp.deref()<<" ";sbp.incur();}return 0; } /* in.txt i think we should do it if you don't mind. so what do you want to do? */ 12.2.1節練習:

#include <iostream> #include <memory> #include <algorithm> #include <cstring> #include <iterator>int main() {//12.23char sc1[]="woqu",sc2[]=" nimeide";char *q=new char[strlen(sc1)+strlen(sc2)+1];strcpy(q,sc1);strcat(q,sc2);std::cout<<q<<std::endl;std::string s1="woqu",s2=" nimeide";std::cout<<s1+s2<<std::endl;delete [] q;// need to tell the size. 12.24std::cout << "How long do you want the string? ";int size(0);std::cin >> size;char* input = new char[size + 1]();std::cin.ignore(); //讀取多余回車std::cout << "input the string: ";std::cin.get(input, size + 1);std::cout << input;delete[] input;return 0; }
12.2.2節練習:


#include <iostream> #include <memory>//12.26 int main() {int n;std::cout<<"please input size:";std::cin>>n;std::cin.ignore();std::allocator<std::string > t; //定義類型對象auto const p = t.allocate(n); //申請內存auto q=p;std::string word;while(q!=p+n && std::cin>>word) t.construct(q++,word); //調用構造函數while(q!=p){std::cout<<*--q<<std::endl;t.destroy(q); //調用析構函數,釋放對象}t.deallocate(p,n); //釋放內存return 0; } 12.3.1節練習:

#include <iostream> #include <map> #include <vector> #include <set> #include <memory> #include <sstream> #include <fstream>//12.28 typedef std::vector<std::string >::size_type line;int main() {std::vector<std::string > text;std::map<std::string ,std::set<line> > sign;std::string file_name;std::cout<<"enter file name : "<<std::endl;std::cin>>file_name;std::cin.ignore();std::ifstream file_input(file_name);std::string senten,word;while(getline(file_input,senten)){ //讀入文件內容text.push_back(senten);std::stringstream word_in(senten);line len=text.size();while(word_in>>word) sign[word].insert(len);}while(true){ //查詢std::cout<<"enter the query word and enter q to quit : ";std::cin>>word;std::cin.ignore();if(word=="q") break;auto loc=sign.find(word);if(loc==sign.cend()) std::cout<<"not find "<<word<<std::endl;else {std::cout<<word<<" : "<<std::endl;for(auto x:loc->second)std::cout<<"(line "<<x<<") : "<<text[x-1]<<std::endl;}}return 0; } 12.3.2節練習:

練習12.30:

#include <iostream> #include <map> #include <vector> #include <set> #include <memory> #include <sstream> #include <fstream> //12.30 同12.27 class TextQuery; class QueryResult; using line=std::vector<std::string>::size_type; //文件查詢類,存錯整個文件內容 以及每個單詞出現的行數 定義查詢函數返回一個查詢結果類 class TextQuery{ public ://構造函數 獲取一個文件輸入對象 構造 sign p_textTextQuery(std::ifstream& in):p_text(new std::vector<std::string >){std::string senten; //讀取每行的句子while(getline(in,senten)){p_text->push_back(senten);auto len=p_text->size();std::stringstream word_in(senten);std::string word;while(word_in>>word){auto isok=sign.find(word);//若該單詞還為出現過,申請新的空間if(isok==sign.cend()) sign[word].reset(new std::set<line>);sign[word]->insert(len);}}}//該函數的定義必須在QueryResult 完整定義后定義,這里只做聲明QueryResult query(const std::string &s)const ; private :std::shared_ptr<std::vector<std::string > > p_text; //存內容std::map<std::string,std::shared_ptr<std::set<line> > > sign; //存每個單詞所在行位置數 };//查詢結果類 包括查詢的單詞 以及該單詞所在的所有行數 單詞所在行的句子(即必須獲取所有內容) class QueryResult{ private:std::string word; //查詢的單詞std::shared_ptr<std::set<line> > p_line; //該單詞的行號std::shared_ptr<std::vector<std::string> >p_text; //存句子 public ://print要使用里面的成員friend std::ostream& print(std::ostream& out,const QueryResult& qr);QueryResult(std::string s,std::shared_ptr<std::set<line> > pl,std::shared_ptr<std::vector<std::string> > pv):word(s),p_line(pl),p_text(pv){} }; QueryResult TextQuery::query(const std::string &s)const{std::shared_ptr<std::set<line> > null_ptr(new std::set<line> );auto isok=sign.find(s);//若未找到,返回第二個參數為新申請的初始化的空間if(isok==sign.cend()) return QueryResult(s,null_ptr,p_text);else return QueryResult(s,isok->second,p_text); } std::ostream& print(std::ostream& out,const QueryResult &qr){out<<qr.word<<" : "<<std::endl;for(auto x:*qr.p_line) out<<"(line "<<x<<" ): "<<qr.p_text->at(x-1)<<std::endl;return out; } void runQueries(std::ifstream &infile){TextQuery tq(infile);while(true){std::cout<<"enter word to look for, or q to quit: ";std::string s;if(!(std::cin>>s) || s=="q") break;print(std::cout,tq.query(s))<<std::endl;} } int main() {std::ifstream in("in.txt");runQueries(in);return 0; } 練習12.32:

#include <iostream> #include <map> #include <vector> #include <set> #include <memory> #include <sstream> #include <fstream> #include <stdexcept> //12.32 class StrBlob{typedef std::vector<std::string> vstring;public:StrBlob():data(std::make_shared<vstring>()){}StrBlob(std::initializer_list<std::string > lis):data(std::make_shared<vstring>(lis)){}vstring::size_type size()const {return data->size();}void push_back(const std::string &s){data->push_back(s);}void pop_back(){check(0,"pop on empty StrBlob");data->pop_back();}std::string &front(){check(0,"front on empty StrBlob");return data->front();}std::string &back(){check(0,"back on empty StrBlob");return data->back();}std::string at(int x){return data->at(x);} private:std::shared_ptr<vstring> data; // emoryvoid check(vstring::size_type i,const std::string &s)const {if(data->size()<=i) throw std::out_of_range(s); // stdexcept} };class TextQuery; class QueryResult; using line=std::vector<std::string>::size_type; //文件查詢類,存錯整個文件內容 以及每個單詞出現的行數 定義查詢函數返回一個查詢結果類 class TextQuery{ public ://構造函數 獲取一個文件輸入對象 構造 sign p_textTextQuery(std::ifstream& in):p_text(new StrBlob){std::string senten; //讀取每行的句子while(getline(in,senten)){p_text->push_back(senten);auto len=p_text->size();std::stringstream word_in(senten);std::string word;while(word_in>>word){auto isok=sign.find(word);//若該單詞還為出現過,申請新的空間if(isok==sign.cend()) sign[word].reset(new std::set<line>);sign[word]->insert(len);}}}//該函數的定義必須在QueryResult 完整定義后定義,這里只做聲明QueryResult query(const std::string &s)const ; private :std::shared_ptr<StrBlob > p_text; //存內容std::map<std::string,std::shared_ptr<std::set<line> > > sign; //存每個單詞所在行位置數 };//查詢結果類 包括查詢的單詞 以及該單詞所在的所有行數 單詞所在行的句子(即必須獲取所有內容) class QueryResult{ private:std::string word; //查詢的單詞std::shared_ptr<std::set<line> > p_line; //該單詞的行號std::shared_ptr<StrBlob >p_text; //存句子 public ://print要使用里面的成員friend std::ostream& print(std::ostream& out,const QueryResult& qr);QueryResult(std::string s,std::shared_ptr<std::set<line> > pl,std::shared_ptr<StrBlob > pv):word(s),p_line(pl),p_text(pv){} }; QueryResult TextQuery::query(const std::string &s)const{std::shared_ptr<std::set<line> > null_ptr(new std::set<line> );auto isok=sign.find(s);//若未找到,返回第二個參數為新申請的初始化的空間if(isok==sign.cend()) return QueryResult(s,null_ptr,p_text);else return QueryResult(s,isok->second,p_text); } std::ostream& print(std::ostream& out,const QueryResult &qr){out<<qr.word<<" : "<<std::endl;for(auto x:*qr.p_line)out<<"(line "<<x<<" ): "<<qr.p_text->at(x-1)<<std::endl;return out; } void runQueries(std::ifstream &infile){TextQuery tq(infile);while(true){std::cout<<"enter word to look for, or q to quit: ";std::string s;if(!(std::cin>>s) || s=="q") break;print(std::cout,tq.query(s))<<std::endl;} }int main() {std::ifstream in("in.txt");runQueries(in);return 0; } 練習12.33:

#include <iostream> #include <map> #include <vector> #include <set> #include <memory> #include <sstream> #include <fstream> //12.30 同12.27class TextQuery; class QueryResult; using line=std::vector<std::string>::size_type; //文件查詢類,存錯整個文件內容 以及每個單詞出現的行數 定義查詢函數返回一個查詢結果類 class TextQuery{ public ://構造函數 獲取一個文件輸入對象 構造 sign p_textTextQuery(std::ifstream& in):p_text(new std::vector<std::string >){std::string senten; //讀取每行的句子while(getline(in,senten)){p_text->push_back(senten);auto len=p_text->size();std::stringstream word_in(senten);std::string word;while(word_in>>word){auto isok=sign.find(word);//若該單詞還為出現過,申請新的空間if(isok==sign.cend()) sign[word].reset(new std::set<line>);sign[word]->insert(len);}}}//該函數的定義必須在QueryResult 完整定義后定義,這里只做聲明QueryResult query(const std::string &s)const ; private :std::shared_ptr<std::vector<std::string > > p_text; //存內容std::map<std::string,std::shared_ptr<std::set<line> > > sign; //存每個單詞所在行位置數 };//查詢結果類 包括查詢的單詞 以及該單詞所在的所有行數 單詞所在行的句子(即必須獲取所有內容) class QueryResult{ private:std::string word; //查詢的單詞std::shared_ptr<std::set<line> > p_line; //該單詞的行號std::shared_ptr<std::vector<std::string> >p_text; //存句子 public ://print要使用里面的成員friend std::ostream& print(std::ostream& out,const QueryResult& qr);QueryResult(std::string s,std::shared_ptr<std::set<line> > pl,std::shared_ptr<std::vector<std::string> > pv):word(s),p_line(pl),p_text(pv){}std::set<line >::iterator begin(){ //beginreturn p_line->begin();}std::set<line >::iterator end(){ //endreturn p_line->end();}std::shared_ptr<std::vector<std::string> > get_file(){ //get_filereturn p_text;} }; QueryResult TextQuery::query(const std::string &s)const{std::shared_ptr<std::set<line> > null_ptr(new std::set<line> );auto isok=sign.find(s);//若未找到,返回第二個參數為新申請的初始化的空間if(isok==sign.cend()) return QueryResult(s,null_ptr,p_text);else return QueryResult(s,isok->second,p_text); } std::ostream& print(std::ostream& out,const QueryResult &qr){out<<qr.word<<" : "<<std::endl;for(auto x:*qr.p_line) out<<"(line "<<x<<" ): "<<qr.p_text->at(x-1)<<std::endl;return out; } void runQueries(std::ifstream &infile){TextQuery tq(infile);while(true){std::cout<<"enter word to look for, or q to quit: ";std::string s;if(!(std::cin>>s) || s=="q") break;print(std::cout,tq.query(s))<<std::endl;} }int main() {return 0; } 15.2.1節練習:

#include <iostream>//15.3 class Quote{ public :Quote()=default;Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){}std::string isbn()const {return bookNo;}virtual double net_price(std::size_t n) const {return n*price;}friend double print_total(std::ostream&,const Quote&,size_t ); private:std::string bookNo; protected:double price=0.0; };double print_total(std::ostream &os,const Quote &item,size_t n){double ret=item.net_price(n);os<<"isbn: "<<item.isbn()<<" sold :"<<n<<" total due: "<<ret<<std::endl;return ret; } int main() {Quote q("c++ prime",150);print_total(std::cout,q,3);return 0; } 15.2.2節練習:

#include <iostream> #include <cstdio>//15.5 15.6 15.7 class Quote{ public :Quote()=default;Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){}std::string isbn()const {return bookNo;}virtual double net_price(std::size_t n) const {return n*price;}friend double print_total(std::ostream&,const Quote&,size_t ); private:std::string bookNo; protected:double price=0.0; };class Bulk_quote:public Quote{ public :Bulk_quote()=default;Bulk_quote(const std::string &book,double sales_price,std::size_t num,double disc):Quote(book,sales_price),min_num(num),discount(disc){};double net_price(std::size_t n) const{if(n>=min_num) return n*price*discount;else return n*price;} private:std::size_t min_num;double discount; };class huodong_quote:public Quote{ public :huodong_quote()=default;huodong_quote(const std::string book,double sales_price,std::size_t num,double disc):Quote(book,sales_price),max_num(num),discount(disc){}double net_price(std::size_t n)const {if(n<=max_num) return n*price*discount;else return net_price(max_num)+(n-max_num)*price;} private:double discount;size_t max_num; }; double print_total(std::ostream &os,const Quote &item,size_t n){double ret=item.net_price(n);os<<"isbn: "<<item.isbn()<<" sold :"<<n<<" total due: "<<ret<<std::endl;return ret; }int main() {Bulk_quote b("math",20,5,0.5);print_total(std::cout,b,4);print_total(std::cout,b,5);huodong_quote h("高數",20,5,0.5);print_total(std::cout,h,5);print_total(std::cout,h,6);return 0; } 15.3節練習:

#include <iostream> #include <cstdio>//15.11 debug() class Quote{ public :Quote()=default;Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){}std::string isbn()const {return bookNo;}virtual double net_price(std::size_t n) const {return n*price;}friend double print_total(std::ostream&,const Quote&,size_t );virtual void debug(){std::cout<<"類成員及類型如下所示:"<<std::endl;std::cout<<"string : bookNo"<<std::endl;std::cout<<"double : price"<<std::endl;} private:std::string bookNo; protected:double price=0.0; };class Bulk_quote:public Quote{ public :Bulk_quote()=default;Bulk_quote(const std::string &book,double sales_price,std::size_t num,double disc):Quote(book,sales_price),min_num(num),discount(disc){};double net_price(std::size_t n) const{if(n>=min_num) return n*price*discount;else return n*price;}void debug()override{Quote::debug();std::cout<<"size_t : min_num"<<std::endl;std::cout<<"double : discount"<<std::endl;} private:std::size_t min_num;double discount; };class huodong_quote:public Quote{ public :huodong_quote()=default;huodong_quote(const std::string book,double sales_price,std::size_t num,double disc):Quote(book,sales_price),max_num(num),discount(disc){}double net_price(std::size_t n)const {if(n<=max_num) return n*price*discount;else return net_price(max_num)+(n-max_num)*price;}void debug()override{Quote::debug();std::cout<<"size_t : max_num"<<std::endl;std::cout<<"double : discount"<<std::endl;} private:double discount;size_t max_num; }; double print_total(std::ostream &os,const Quote &item,size_t n){double ret=item.net_price(n);os<<"isbn: "<<item.isbn()<<" sold :"<<n<<" total due: "<<ret<<std::endl;return ret; }int main() {Bulk_quote b("math",20,5,0.5);huodong_quote h("數學",20,5,0.5);b.debug();std::cout<<std::endl;h.debug();return 0; } 15.4節練習:

#include <iostream> #include <cstdio>//15.15 15.16 class Quote{ public :Quote()=default;Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){}std::string isbn()const {return bookNo;}virtual double net_price(std::size_t n) const {return n*price;}friend double print_total(std::ostream&,const Quote&,size_t ); private:std::string bookNo; protected:double price=0.0; }; double print_total(std::ostream &os,const Quote &item,size_t n){double ret=item.net_price(n);os<<"isbn: "<<item.isbn()<<" sold :"<<n<<" total due: "<<ret<<std::endl;return ret; } class Disc_quote:public Quote{ public :Disc_quote()=default;Disc_quote(const std::string &book,double sales_price,std::size_t n,double disc):Quote(book,sales_price),off_num(n),discount(disc){}double net_price(size_t)const =0; //′?Déoˉêy protected:size_t off_num;double discount; }; class Bulk_quote:public Disc_quote{ public :Bulk_quote()=default;Bulk_quote(const std::string &book,double sales_price,std::size_t num,double disc):Disc_quote(book,sales_price,num,disc){};double net_price(std::size_t n) const override{if(n>=off_num) return n*price*discount;else return n*price;} };class huodong_quote:public Disc_quote{ public :huodong_quote()=default;huodong_quote(const std::string book,double sales_price,std::size_t num,double disc):Disc_quote(book,sales_price,num,disc){}double net_price(std::size_t n)const override{if(n<=off_num) return n*price*discount;else return net_price(off_num)+(n-off_num)*price;} }; int main() {Bulk_quote b("高數",20,5,0.5);huodong_quote h("線代",20,5,0.5);print_total(std::cout,b,6);print_total(std::cout,h,6);return 0; } 15.5節練習:

#include <iostream> #include <cmath>//15.21 15.22 class Graph{ public :Graph()=default;Graph(double x):r(x){}virtual double get_area()=0;virtual double get_value()=0; protected:double r;const double Pi=3.1415926; };class Grid:public Graph{ public :Grid()=default;Grid(double x):Graph(x){}double get_area(){return r*r;}double get_value(){return 0.0;} }; class Circle:public Graph{ public :Circle()=default;Circle(double x):Graph(x){}double get_area(){return Pi*r*r;}double get_value(){return 0.0;} };class Ball:public Graph{ public :Ball()=default;Ball(double x):Graph(x){}double get_area(){return 4.0*Pi*r*r;}double get_value(){return 4.0*Pi*r*r*r/3.0;} };class Cone:public Graph{ public :Cone()=default;Cone(double x,double y):Graph(x),height(y){}double get_area(){return Pi*r*r+Pi*r*sqrt(height*height+r*r);}double get_value(){return Pi*height*r*r/3.0;} protected:double height; }; int main() {Grid g(2.0);Circle ci(2.0);Ball b(2.0);Cone co(2.0,3.0);std::cout<<"Grid : "<<g.get_area()<<" m^2 "<<g.get_value()<<" m^3 "<<std::endl;std::cout<<"Cirle : "<<ci.get_area()<<" m^2 "<<ci.get_value()<<" m^3 "<<std::endl;std::cout<<"Ball : "<<b.get_area()<<" m^2 "<<b.get_value()<<" m^3 "<<std::endl;std::cout<<"Cone : "<<co.get_area()<<" m^2 "<<co.get_value()<<" m^3 "<<std::endl;return 0; } 15.7.3節練習:

#include <iostream>//15.26 class Quote{ public :Quote()=default;Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){std::cout<<"Quote construct "<<std::endl;}Quote(const Quote &qu){this->bookNo=qu.bookNo;this->price=qu.price;std::cout<<"Quote copy "<<std::endl;}std::string isbn()const {return bookNo;}virtual ~Quote(){std::cout<<"Quote delete"<<std::endl;} private:std::string bookNo; protected:double price=0.0; };class Bulk_quote:public Quote{ public :Bulk_quote()=default;Bulk_quote(const std::string &book,double sales_price,std::size_t num,double disc):Quote(book,sales_price),min_num(num),discount(disc){std::cout<<"Bulk_quote construct "<<std::endl;};Bulk_quote(const Bulk_quote &bkq):Quote(bkq){this->min_num=bkq.min_num;this->discount=bkq.discount;std::cout<<"Bulk_quote copy "<<std::endl;}virtual ~Bulk_quote(){std::cout<<"Bulk_quote delete "<<std::endl;} private:std::size_t min_num;double discount; };int main() {Bulk_quote b("math",20,5,0.5);Bulk_quote bb(b);return 0; }/* 首位兩行為b調用構造函數及析構函數, 中間四行為bb調用拷貝函數及析構函數 Quote construct Bulk_quote constructQuote copy Bulk_quote copy Bulk_quote delete Quote deleteBulk_quote delete Quote delete */ 15.8節練習:

#include <iostream> #include <cstdio> #include <vector> #include <memory>//15.28 15.29 class Quote{ public :Quote()=default;Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){}std::string isbn()const {return bookNo;}virtual double net_price(std::size_t n) const {return n*price;}friend double print_total(std::ostream&,const Quote&,size_t ); private:std::string bookNo; protected:double price=0.0; };class Bulk_quote:public Quote{ public :Bulk_quote()=default;Bulk_quote(const std::string &book,double sales_price,std::size_t num,double disc):Quote(book,sales_price),min_num(num),discount(disc){};double net_price(std::size_t n) const{if(n>=min_num) return n*price*discount;else return n*price;} private:std::size_t min_num;double discount; }; double print_total(std::ostream &os,const Quote &item,size_t n){double ret=item.net_price(n);os<<"isbn: "<<item.isbn()<<" sold :"<<n<<" total due: "<<ret<<std::endl;return ret; }int main() {std::vector<Quote > vec1;vec1.push_back(Bulk_quote("高數",20,8,0.5));//只是把其中Quote的部分拷貝給vec1了vec1.push_back(Bulk_quote("高數",20,5,0.5));double sum1=0.0;for(auto x:vec1){sum1+=print_total(std::cout,x,7);}std::cout<<"total_price:"<<sum1<<std::endl;std::vector<std::shared_ptr<Quote> > vec2;vec2.push_back(std::make_shared<Bulk_quote>("高數",20,8,0.5)); //指針動態綁定vec2.push_back(std::make_shared<Bulk_quote>("高數",20,5,0.5));double sum2=0.0;for(auto x:vec2){sum2+=print_total(std::cout,*x,7);}std::cout<<"total_price:"<<sum2<<std::endl;return 0; } 15.8.1節練習:

#include <iostream> #include <memory> #include <set>//15.30 class Quote{ public :Quote()=default;Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){}std::string isbn()const {return bookNo;}virtual double net_price(std::size_t n) const {return n*price;}friend double print_total(std::ostream&,const Quote&,size_t );// virtual Quote *clone()const &{return new Quote(*this);} 編譯器不支持 private:std::string bookNo; protected:double price=0.0; };class Bulk_quote:public Quote{ public :Bulk_quote()=default;Bulk_quote(const std::string &book,double sales_price,std::size_t num,double disc):Quote(book,sales_price),min_num(num),discount(disc){};//Bulk_quote *clone()const &{return new Bulk_quote(*this);}double net_price(std::size_t n) const{if(n>=min_num) return n*price*discount;else return n*price;} private:std::size_t min_num;double discount; };double print_total(std::ostream &os,const Quote &item,size_t n){double ret=item.net_price(n);os<<"isbn: "<<item.isbn()<<" sold :"<<n<<" total due: "<<ret<<std::endl;return ret; }class Basket{ public://向vector中插入新元素void add_item(std::shared_ptr<Quote> sale){ item.insert(sale); }//void add_item(const Quote &sale){// item.insert(std::shared_ptr<Quote>(sale.clone()));//}//輸出double total_receipt(std::ostream& os)const{double sum=0.0;//upper_bound(*iter) 指向下一個關鍵字//item.count(*iter) 計算關鍵字為*iter的元素個數for(auto iter=item.cbegin();iter!=item.cend();iter=item.upper_bound(*iter)){sum+=print_total(os,**iter,item.count(*iter));}os<<"Total Sale: "<<sum<<std::endl;return sum;} private:static bool cmp(const std::shared_ptr<Quote > &lhs,const std::shared_ptr<Quote > &rhs){return lhs->isbn()<rhs->isbn();}std::multiset<std::shared_ptr<Quote>,decltype(cmp)*> item{cmp}; }; int main() {Basket b;for(int i=1;i<=5;++i) b.add_item(std::make_shared<Bulk_quote>("高數",20,5,0.5));for(int i=1;i<=7;++i) b.add_item(std::make_shared<Bulk_quote>("線代",30,5,0.5));//for(int i=1;i<=5;++i) b.add_item(Bulk_quote("高數",20,5,0.5));//for(int i=1;i<=7;++i) b.add_item(Bulk_quote("線代",30,5,0.5));b.total_receipt(std::cout);return 0; }
15.92~15.93節練習:

#include <iostream> #include <map> #include <vector> #include <set> #include <memory> #include <sstream> #include <fstream> #include <algorithm> #include <iterator>class TextQuery; class QueryResult; using line=std::vector<std::string>::size_type; //文件查詢類,存錯整個文件內容 以及每個單詞出現的行數 定義查詢函數返回一個查詢結果類 class TextQuery{ public ://構造函數 獲取一個文件輸入對象 構造 sign p_textTextQuery(std::ifstream& in):p_text(new std::vector<std::string >){std::string senten; //讀取每行的句子while(getline(in,senten)){p_text->push_back(senten);auto len=p_text->size(); //對應行號 即從1開始std::stringstream word_in(senten);std::string word;while(word_in>>word){auto isok=sign.find(word);//若該單詞還為出現過,申請新的空間if(isok==sign.cend()) sign[word].reset(new std::set<line>);sign[word]->insert(len);}}}//該函數的定義必須在QueryResult 完整定義后定義,這里只做聲明QueryResult query(const std::string &s)const ; private :std::shared_ptr<std::vector<std::string > > p_text; //存內容std::map<std::string,std::shared_ptr<std::set<line> > > sign; //存每個單詞所在行位置數 };//查詢結果類 包括查詢的單詞 以及該單詞所在的所有行數 單詞所在行的句子(即必須獲取所有內容) class QueryResult{ private:std::string word; //查詢的單詞std::shared_ptr<std::set<line> > p_line; //該單詞的行號std::shared_ptr<std::vector<std::string> >p_text; //存句子 public ://print要使用里面的成員friend std::ostream& print(std::ostream& out,const QueryResult& qr);QueryResult(std::string s,std::shared_ptr<std::set<line> > pl,std::shared_ptr<std::vector<std::string> > pv):word(s),p_line(pl),p_text(pv){}std::set<line >::iterator begin(){ //beginreturn p_line->begin();}std::set<line >::iterator end(){ //endreturn p_line->end();}std::shared_ptr<std::vector<std::string> > get_file(){ //get_filereturn p_text;} }; QueryResult TextQuery::query(const std::string &s)const{std::shared_ptr<std::set<line> > null_ptr(new std::set<line> );auto isok=sign.find(s);//若未找到,返回第二個參數為新申請的初始化的空間if(isok==sign.cend()) return QueryResult(s,null_ptr,p_text);else return QueryResult(s,isok->second,p_text); } std::ostream& print(std::ostream& out,const QueryResult &qr){out<<qr.word<<" : "<<std::endl;for(auto x:*qr.p_line) out<<"(line "<<x<<" ): "<<qr.p_text->at(x-1)<<std::endl;return out; }class Query_base{friend class Query; //Query使用eval() rep()函數 protected :virtual ~Query_base()=default; private:virtual QueryResult eval(const TextQuery&)const =0; //返回與之匹配的QueryResultvirtual std::string rep()const =0; //返回要查詢的string }; class Query{friend Query operator~(const Query &);friend Query operator|(const Query&,const Query&);friend Query operator&(const Query&,const Query&); public :Query(const std::string&s=""); //當Query q時,自動賦值一個""給rep( 初始值默認初始化)QueryResult eval(const TextQuery &t)const {return q->eval(t);}//Query_base::eval()std::string rep()const {return q->rep();} //Query_base::rep() private:Query(std::shared_ptr<Query_base> query):q(query){} //構造函數,接受一個Query_base指針std::shared_ptr<Query_base> q; //通過該指針實現多態 };class WordQuery:public Query_base{ //直接調用TextQuery的query函數即可friend class Query;WordQuery(const std::string &s):query_word(s){}QueryResult eval(const TextQuery &t)const {return t.query(query_word);}std::string rep()const {return query_word;}std::string query_word; // Query::Query(const std::string &s):q(new WordQuery(s)){} }; //Query的構造函數,接受一個string 把一個WordQuery(s)賦給Query:q inline Query::Query(const std::string &s):q(new WordQuery(s)){} class NotQuery:public Query_base{friend Query operator~(const Query &);NotQuery(const Query &q):query(q){} //構造函數 獲取一個Query參數std::string rep()const {return "~("+query.rep()+")";}QueryResult eval(const TextQuery&) const ;Query query; }; //重載運算符,返回一個指向NotQuery類型的指針 綁定到Query inline Query operator~(const Query &operand){return std::shared_ptr<Query_base>(new NotQuery(operand)); }class BinaryQuery:public Query_base{ protected://構造函數獲得左右操作對象 及操作方法BinaryQuery(const Query &l,const Query &r,std::string s):lhs(l),rhs(r),opSym(s){}std::string rep()const{ return "("+lhs.rep()+" "+opSym+" "+rhs.rep()+")";}Query lhs,rhs; //兩個運算對象std::string opSym; //運算符 };class AndQuery:public BinaryQuery{friend Query operator&(const Query&,const Query); public :AndQuery(const Query &left,const Query &right):BinaryQuery(left,right,"&"){}QueryResult eval(const TextQuery&)const; }; //重載運算符返回一個指向 AndQuery類型的指針 綁定到Query inline Query operator&(const Query &lhs,const Query &rhs){return std::shared_ptr<Query_base>(new AndQuery(lhs,rhs)); } class OrQuery:public BinaryQuery{friend Query operator|(const Query &,const Query&); public :OrQuery(const Query &left,const Query &right):BinaryQuery(left,right,"|"){}QueryResult eval(const TextQuery&)const; }; //重載運算符返回一個指向 OrQuery類型的指針 綁定到Query inline Query operator|(const Query &lhs,const Query &rhs){return std::shared_ptr<Query_base>(new OrQuery(lhs,rhs)); } //重載輸出運算符,輸出Query指向的rep(),可注釋 std::ostream & operator<<(std::ostream &os,const Query &query){return os<<query.rep();}//把兩個Query 的QueryResult合并,即兩向一個set 插入兩個對象的信息 QueryResult OrQuery::eval(const TextQuery& text)const {auto right=rhs.eval(text),left=lhs.eval(text);auto ret_lines=std::make_shared<std::set<line> >(left.begin(),left.end());ret_lines->insert(right.begin(),right.end());return QueryResult(rep(),ret_lines,left.get_file()); } //調用函數 set_intersection(beg1,end1,beg2,end2,dest)函數實現 QueryResult AndQuery::eval(const TextQuery& text)const{auto left=lhs.eval(text),right=rhs.eval(text);auto ret_lines=std::make_shared<std::set<line> >();set_intersection(left.begin(),left.end(),right.begin(),right.end(),inserter(*ret_lines,ret_lines->begin()));return QueryResult(rep(),ret_lines,left.get_file()); }QueryResult NotQuery::eval(const TextQuery&text)const {auto result=query.eval(text); //result相當于一個WordQuery的結果auto ret_lines=std::make_shared<std::set<line> >(); //新建一個 *setauto beg=result.begin(),end=result.end();auto sz=result.get_file()->size();//查詢內容的總行數//for(auto &x:result) std::cout<<x<<std::endl;//std::cout<<" sz :"<<sz<<std::endl;for(size_t n=1;n!=sz;++n){ //取內容中不在result,p_line中的行數放入新*set,注意從第一行開始if(beg==end || *beg!=n) ret_lines->insert(n);else if(beg!=end)++beg;}return QueryResult(rep(),ret_lines,result.get_file()); } void runQueries(std::ifstream &infile){TextQuery tq(infile);while(true){std::cout<<"enter word to look for, or q to quit: ";std::string s;if(!(std::cin>>s) || s=="q") break;print(std::cout,tq.query(s))<<std::endl;} }int main() {std::ifstream infile("in.txt");TextQuery tq(infile);Query q1("i"),q2,q3=q1|q2,q4=~q1;print(std::cout,q4.eval(tq));return 0; }/* in.txt: i don't think so why i can't do it just for her ? i love her and i want stay with her forever can i success ? */
16.1.1節練習:

#include <iostream> #include <cstring> #include <vector> #include <list> #include <algorithm>//16.2 template <typename T> int compare(const T& a,const T& b){if(a>b) return 1;else if(a<b) return -1;return 0; } void fun2(){std::cout<<compare(123,12)<<std::endl;std::cout<<compare(12.12,12.13)<<std::endl;std::cout<<compare((std::string)"woqu",(std::string)"shabi")<<std::endl;std::vector<int > v1={1,2,3,4},v2={2,3,4};std::cout<<compare(v1,v2)<<std::endl; }//16.4 template <typename T1,typename T2> T1 find1(T1 beg,T1 end,const T2& temp){while(beg!=end)if(*beg==temp) return beg;else ++beg;return end; } void fun4(){std::vector<int > a={1,3,4,5};auto iter=find1(a.begin(),a.end(),3);std::cout<<*iter<<std::endl;std::list<std::string > ls={"wo","qu","dou","bi"};auto iter2=find1(ls.begin(),ls.end(),"qu");std::cout<<*iter2<<std::endl; }//16.5 這個很神奇 template <typename T,unsigned N> void print(const T (&p)[N]){for(int i=0;i<N;++i)std::cout<<p[i]<<" ";std::cout<<std::endl; } void fun5(){int a[]={1,3,4,5,7};char s[]="woqunimeide";print(a);print(s); }//16.6 template <typename T,unsigned N> T* begin(T (&p)[N]){if(N>1) return p;else return NULL; } template <typename T,unsigned N> T* end(T (&p)[N]){if(N>1)return p+N;else return NULL; } void fun6(){int num[]={1,2,3,4,5};char s[]="woqufule";std::for_each(begin(num),end(num),[](const int &x){std::cout<<x<<" ";});//相當于for(auto it=begin(num);it!=end(num);+it) std::cout<<*it<<" ";std::cout<<std::endl;std::for_each(begin(s),end(s),[](const char &x){std::cout<<x<<" ";});std::cout<<std::endl; }//16.7 template <typename T,unsigned N> constexpr unsigned size_array(T (&p)[N]){return N; } void fun7(){int num[]={1,2,3,4};std::cout<<size_array(num); } int main() {//fun2(); //16.2//fun4(); //16.4//fun5(); //16.5//fun6(); //16.6//fun7(); //16.7return 0; } 16.1.2節練習:

#include <iostream> #include <vector> #include <initializer_list> #include <memory> #include <stdexcept>//16.12 template <typename T> class BlobPtr; template <typename T> class Blob{friend BlobPtr<T> ; public:typedef typename std::vector<T>::size_type size_type;Blob():data(std::make_shared<std::vector<T> >()){}Blob(std::initializer_list<T> lis):data(std::make_shared<std::vector<T> >(lis)){}size_type size()const {return data->size();}void push_back(const T &s){data->push_back(s);}void pop_back(){check(0,"pop on empty Blob");data->pop_back();}T &front(){check(0,"front on empty Blob");data->front();}T &back(){check(0,"back on empty Blob");return data->back();}T &operator[](size_type t); private:std::shared_ptr<std::vector<T> > data; // emoryvoid check(size_type i,const std::string &s)const {if(data->size()<=i) throw std::out_of_range(s); // stdexcept} }; template <typename T> T &Blob<T>::operator[](size_type t){check(t,"subscript out of range");return (*data)[t]; }template <typename T> class BlobPtr{ public :BlobPtr():curr(0){}BlobPtr(Blob<T> &a,size_t sz=0):wptr(a.data),curr(sz){}T &operator*()const{auto p=check(curr,"derefence past end");return (*p)[curr];}BlobPtr& operator++(){BlobPtr ret=*this;curr++;// ++*this;return ret;}BlobPtr& operator--(){BlobPtr ret=*this;curr--;// --*this;return ret;} private:std::shared_ptr<std::vector<T> > check(std::size_t t,const std::string &msg)const {auto ret=wptr.lock();if(!ret) throw std::runtime_error("unbound BlobPtr");else if(t>=ret->size())throw std::out_of_range(msg);return ret;}std::weak_ptr<std::vector<T> > wptr;std::size_t curr; };int main() { //16.12Blob<std::string> b1={"a","an","the"};for(auto i=0;i<b1.size();++i) std::cout<<b1[i]<<" ";std::cout<<std::endl;BlobPtr<std::string> pb(b1);for(int i=0;i<b1.size();++i,++pb)std::cout<<*pb<<" ";return 0; } 16.1.2節練習:

#include <iostream> #include <stdexcept> //16.14 16.15 template <unsigned H,unsigned W> class Screen{typedef std::string::size_type pos; public:Screen()=default;Screen(char c):contents(H*W,c){}char get()const { return contents[cursor];} //取當前焦點的值Screen &move(pos r,pos c){ //移動焦點if(r<1) throw std::out_of_range("out of screen");cursor =(r-1)*width +c;return *this;}Screen &operator<<(const char &c){ //輸出當前焦點的值contents[cursor] =c;return *this;}Screen &operator>>(char &c){ //輸入當前焦點的值c=contents[cursor];return *this;}friend std::ostream &operator<<(std::ostream &os,const Screen<H,W> &c ){ //輸出屏幕for(int i=0;i<c.height;++i)os<<c.contents.substr(i*W,W)<<std::endl;return os;}private:pos cursor=0; //焦點pos height=H,width=W; //寬高std::string contents; //一個string 存整個屏幕 }; int main() {Screen<10,10> src('x');src.move(5,5);src<<'c';std::cout<<src;return 0; } 16.1.3節練習:

#include <iostream> #include <vector> #include <list> #include <set>//16.19 template <typename T> void print(T& pack){for(auto &x:pack) std::cout<<x<<" ";std::cout<<std::endl; } //16.20 template <typename T> void print2(T& pack){for(auto it=pack.begin();it!=pack.end();++it) std::cout<<*it<<" ";std::cout<<std::endl; } int main() {std::vector<int > vec={1,2,3,4,5};print(vec);print2(vec);std::list<char > li={'w','o','q','u'};print(li);print2(li);std::set<int > st={6,7,8};print(st);print2(st);return 0; }
16.1.4節練習:

#include <iostream> //16.21 class DebugDelete{ public :DebugDelete(std::ostream &s = std::cerr):os(s){} //構造函數template <typename T> void operator()(T *p)const{ //重載()運算符os<<"deleteing unique_ptr"<<std::endl;delete p;} private:std::ostream &os; }; int main() {DebugDelete del;int *p= new int(3);del(p);std::cout<<*p;return 0; } 16.1.4節練習:

#include <iostream> #include <vector> #include <memory> #include <stdexcept>template <typename T> class Blob{ public:typedef typename std::vector<T>::size_type size_type;Blob():data(std::make_shared<std::vector<T> >()){}Blob(std::initializer_list<T> lis):data(std::make_shared<std::vector<T> >(lis)){}size_type size()const {return data->size();}void push_back(const T &s){data->push_back(s);}void pop_back(){check(0,"pop on empty Blob");data->pop_back();}T &front(){check(0,"front on empty Blob");data->front();}T &back(){check(0,"back on empty Blob");return data->back();}T &operator[](size_type t);//16.24Blob(typename std::vector<T>::iterator b,typename std::vector<T>::iterator e){data=std::make_shared<std::vector<T> >(b,e);} private:std::shared_ptr<std::vector<T> > data; // emoryvoid check(size_type i,const std::string &s)const {if(data->size()<=i) throw std::out_of_range(s); // stdexcept} }; int main() {std::vector<int > v={1,2,3};Blob<int> b(v.begin(),v.end());std::cout<<b.back();return 0; }
未完待續。。。

?

總結

以上是生活随笔為你收集整理的C++ Primer 第五版 部分课后题答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久国语露脸国产精品电影 | 国产人妻精品午夜福利免费 | 国产亚洲精品久久久久久大师 | 爽爽影院免费观看 | 国产手机在线αⅴ片无码观看 | 乌克兰少妇性做爰 | 少妇高潮一区二区三区99 | 性开放的女人aaa片 | 日本大乳高潮视频在线观看 | 一本精品99久久精品77 | 无码午夜成人1000部免费视频 | 久久人人爽人人爽人人片ⅴ | 精品一二三区久久aaa片 | 久久成人a毛片免费观看网站 | 人妻少妇被猛烈进入中文字幕 | 鲁鲁鲁爽爽爽在线视频观看 | 免费无码午夜福利片69 | 日日躁夜夜躁狠狠躁 | 精品国产一区av天美传媒 | 国产成人精品必看 | 漂亮人妻洗澡被公强 日日躁 | 精品午夜福利在线观看 | 人妻无码αv中文字幕久久琪琪布 | 久久zyz资源站无码中文动漫 | 人人妻人人澡人人爽欧美一区 | 国产成人无码午夜视频在线观看 | 亚洲精品综合一区二区三区在线 | 99精品国产综合久久久久五月天 | 国产精品高潮呻吟av久久 | 色综合久久久无码网中文 | 国产在线精品一区二区三区直播 | 午夜无码区在线观看 | 久久久av男人的天堂 | 精品国产aⅴ无码一区二区 | 无码国产乱人伦偷精品视频 | 久久久久久a亚洲欧洲av冫 | 精品 日韩 国产 欧美 视频 | 97夜夜澡人人爽人人喊中国片 | 色窝窝无码一区二区三区色欲 | 玩弄人妻少妇500系列视频 | 亚洲精品无码人妻无码 | 欧美激情内射喷水高潮 | 久久久久av无码免费网 | 色欲综合久久中文字幕网 | 免费乱码人妻系列无码专区 | 99精品视频在线观看免费 | 欧美xxxxx精品 | 成人试看120秒体验区 | 精品国产精品久久一区免费式 | 小sao货水好多真紧h无码视频 | 香港三级日本三级妇三级 | 国产精品香蕉在线观看 | 国产午夜福利100集发布 | 日本熟妇浓毛 | 欧美精品免费观看二区 | 国产无套内射久久久国产 | 少妇一晚三次一区二区三区 | 无码福利日韩神码福利片 | 内射后入在线观看一区 | 亚洲成a人片在线观看无码3d | 给我免费的视频在线观看 | 97夜夜澡人人爽人人喊中国片 | 精品久久久久香蕉网 | 任你躁在线精品免费 | 午夜精品久久久内射近拍高清 | 狠狠亚洲超碰狼人久久 | 黑人粗大猛烈进出高潮视频 | 无码人妻av免费一区二区三区 | av无码电影一区二区三区 | 国产综合色产在线精品 | 久热国产vs视频在线观看 | 国产又爽又黄又刺激的视频 | 图片小说视频一区二区 | 久久亚洲精品中文字幕无男同 | 国产熟妇高潮叫床视频播放 | 国产成人无码av片在线观看不卡 | 性色欲网站人妻丰满中文久久不卡 | 狂野欧美性猛交免费视频 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲日韩av片在线观看 | 国产精品毛片一区二区 | 7777奇米四色成人眼影 | 国产亚洲欧美在线专区 | 亚洲综合无码久久精品综合 | 久久久久国色av免费观看性色 | 国产精品高潮呻吟av久久4虎 | 中文字幕无码免费久久9一区9 | 日本一卡2卡3卡四卡精品网站 | 国产成人精品一区二区在线小狼 | 午夜精品久久久久久久 | 久久精品中文字幕一区 | 1000部啪啪未满十八勿入下载 | 亚洲a无码综合a国产av中文 | 一个人看的www免费视频在线观看 | 中文字幕无码乱人伦 | 亚洲欧洲无卡二区视頻 | 国产人妻精品午夜福利免费 | 国产精品.xx视频.xxtv | 亚洲 另类 在线 欧美 制服 | 秋霞成人午夜鲁丝一区二区三区 | 四虎影视成人永久免费观看视频 | 国产午夜视频在线观看 | 三上悠亚人妻中文字幕在线 | 亚洲熟熟妇xxxx | 中文久久乱码一区二区 | 激情内射日本一区二区三区 | 国内精品人妻无码久久久影院蜜桃 | 蜜臀av在线播放 久久综合激激的五月天 | 中文字幕人妻无码一区二区三区 | 日本免费一区二区三区最新 | 亚洲一区二区三区四区 | 国产偷国产偷精品高清尤物 | 亚洲欧美中文字幕5发布 | 国产亚洲人成a在线v网站 | 青草视频在线播放 | 亚洲综合精品香蕉久久网 | 国产av剧情md精品麻豆 | 中文字幕无线码免费人妻 | 在线看片无码永久免费视频 | 精品一区二区不卡无码av | 中文亚洲成a人片在线观看 | 性做久久久久久久免费看 | 一区二区传媒有限公司 | av无码不卡在线观看免费 | 免费观看激色视频网站 | 狂野欧美性猛交免费视频 | 人人澡人摸人人添 | 天天拍夜夜添久久精品 | 国产精品亚洲一区二区三区喷水 | 日本一区二区三区免费播放 | 无遮无挡爽爽免费视频 | 国产在线一区二区三区四区五区 | 欧美老妇交乱视频在线观看 | 人妻无码αv中文字幕久久琪琪布 | 一本久道高清无码视频 | 人妻互换免费中文字幕 | 在线а√天堂中文官网 | 水蜜桃亚洲一二三四在线 | 中文精品久久久久人妻不卡 | 国产精品igao视频网 | 国产猛烈高潮尖叫视频免费 | 人妻少妇精品久久 | 18无码粉嫩小泬无套在线观看 | 99久久婷婷国产综合精品青草免费 | 久久综合激激的五月天 | 无码av免费一区二区三区试看 | 欧美乱妇无乱码大黄a片 | 99精品国产综合久久久久五月天 | 精品偷拍一区二区三区在线看 | 国产sm调教视频在线观看 | 99精品无人区乱码1区2区3区 | 国产午夜亚洲精品不卡下载 | av在线亚洲欧洲日产一区二区 | 人妻少妇精品无码专区二区 | 又大又硬又爽免费视频 | 亚洲成av人片天堂网无码】 | 久久人人爽人人人人片 | 精品无人区无码乱码毛片国产 | 久久精品无码一区二区三区 | 国产精品内射视频免费 | 乱人伦人妻中文字幕无码 | 国产精品高潮呻吟av久久 | 搡女人真爽免费视频大全 | 日韩av无码一区二区三区不卡 | 正在播放东北夫妻内射 | 国产精品a成v人在线播放 | 国产午夜精品一区二区三区嫩草 | 成熟妇人a片免费看网站 | 四十如虎的丰满熟妇啪啪 | 久久精品一区二区三区四区 | 国产乱人伦偷精品视频 | 国产精品久久久一区二区三区 | 国产精品高潮呻吟av久久4虎 | 99久久久国产精品无码免费 | 亚洲精品久久久久avwww潮水 | 中文字幕人妻无码一夲道 | 国产人妻精品午夜福利免费 | 国产成人无码a区在线观看视频app | 无码国模国产在线观看 | 国产极品美女高潮无套在线观看 | 日本精品人妻无码77777 天堂一区人妻无码 | 久久精品人人做人人综合试看 | 中文字幕无线码免费人妻 | 偷窥村妇洗澡毛毛多 | 精品日本一区二区三区在线观看 | 人妻插b视频一区二区三区 | 成熟女人特级毛片www免费 | 丰满护士巨好爽好大乳 | www成人国产高清内射 | 四虎国产精品一区二区 | 蜜桃臀无码内射一区二区三区 | 国产精品亚洲五月天高清 | 精品人人妻人人澡人人爽人人 | 精品水蜜桃久久久久久久 | 成人影院yy111111在线观看 | 国产在线精品一区二区三区直播 | 少妇性l交大片欧洲热妇乱xxx | 亚洲男人av香蕉爽爽爽爽 | 欧美人与物videos另类 | 久久精品一区二区三区四区 | 综合人妻久久一区二区精品 | 性欧美牲交在线视频 | 亚洲一区二区三区偷拍女厕 | 国产午夜亚洲精品不卡下载 | 曰韩无码二三区中文字幕 | 无码毛片视频一区二区本码 | 极品尤物被啪到呻吟喷水 | 免费无码av一区二区 | 亲嘴扒胸摸屁股激烈网站 | 天天摸天天透天天添 | 欧美丰满熟妇xxxx | 国产成人精品必看 | 国产激情无码一区二区 | 国产精品永久免费视频 | 无码av免费一区二区三区试看 | 欧美丰满老熟妇xxxxx性 | 又大又硬又爽免费视频 | 免费乱码人妻系列无码专区 | 亚洲中文字幕va福利 | 97久久国产亚洲精品超碰热 | 最新国产乱人伦偷精品免费网站 | 成人欧美一区二区三区黑人 | аⅴ资源天堂资源库在线 | 亚洲国产欧美国产综合一区 | 乱码av麻豆丝袜熟女系列 | 成人欧美一区二区三区黑人 | 亚洲精品国产精品乱码视色 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲七七久久桃花影院 | 黑人巨大精品欧美一区二区 | 国产成人无码av在线影院 | 国产亚洲视频中文字幕97精品 | 丁香啪啪综合成人亚洲 | 中文毛片无遮挡高清免费 | 午夜精品一区二区三区的区别 | 久久久久久亚洲精品a片成人 | 国产成人精品优优av | 乱码午夜-极国产极内射 | 亚洲精品一区二区三区四区五区 | 久久人人97超碰a片精品 | 亚洲精品无码国产 | 国产亚洲精品久久久ai换 | 国产美女极度色诱视频www | 爱做久久久久久 | 国产又粗又硬又大爽黄老大爷视 | 日本精品高清一区二区 | 国产成人精品无码播放 | 人人澡人摸人人添 | 亚洲中文字幕在线无码一区二区 | 国产真人无遮挡作爱免费视频 | 久久久久免费看成人影片 | 大胆欧美熟妇xx | 少妇激情av一区二区 | 欧美人与善在线com | 亚洲一区二区三区无码久久 | 天堂无码人妻精品一区二区三区 | 丰满妇女强制高潮18xxxx | 国产一区二区三区影院 | 激情爆乳一区二区三区 | 十八禁视频网站在线观看 | 久久综合狠狠综合久久综合88 | 久久精品人人做人人综合试看 | 人妻无码αv中文字幕久久琪琪布 | 美女张开腿让人桶 | 成人欧美一区二区三区黑人免费 | 亚洲aⅴ无码成人网站国产app | 国内精品人妻无码久久久影院蜜桃 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产精品久久福利网站 | 国产精品久久久久久亚洲毛片 | 国产在线aaa片一区二区99 | 国产在线无码精品电影网 | 狠狠噜狠狠狠狠丁香五月 | 欧美丰满少妇xxxx性 | 日日天干夜夜狠狠爱 | 久久国产精品_国产精品 | 日本熟妇人妻xxxxx人hd | 永久免费观看国产裸体美女 | 亚洲国产精品美女久久久久 | 国产乱人伦偷精品视频 | 色窝窝无码一区二区三区色欲 | 最近免费中文字幕中文高清百度 | 免费无码的av片在线观看 | 99久久久无码国产aaa精品 | 久久人人爽人人爽人人片av高清 | 精品欧洲av无码一区二区三区 | 国产精品资源一区二区 | 精品久久久久久亚洲精品 | 夜夜高潮次次欢爽av女 | 国产在线aaa片一区二区99 | 精品国产一区av天美传媒 | 精品偷自拍另类在线观看 | 成人无码精品1区2区3区免费看 | 又大又硬又黄的免费视频 | www国产精品内射老师 | 精品国产一区二区三区四区 | 图片区 小说区 区 亚洲五月 | 国产精品怡红院永久免费 | 红桃av一区二区三区在线无码av | 99久久精品国产一区二区蜜芽 | 欧美老妇交乱视频在线观看 | 性色av无码免费一区二区三区 | 天天躁夜夜躁狠狠是什么心态 | 国产精品高潮呻吟av久久 | 中文字幕 人妻熟女 | 99久久精品午夜一区二区 | 日本xxxx色视频在线观看免费 | 国产精品18久久久久久麻辣 | 国产性生大片免费观看性 | 久久精品国产日本波多野结衣 | 国产精品久免费的黄网站 | 无码国产乱人伦偷精品视频 | 亚洲综合色区中文字幕 | 99在线 | 亚洲 | 亚洲欧美日韩国产精品一区二区 | 亚洲人成影院在线无码按摩店 | 国产无遮挡又黄又爽又色 | 欧美亚洲日韩国产人成在线播放 | 亚洲の无码国产の无码步美 | 人妻夜夜爽天天爽三区 | 中文字幕人妻丝袜二区 | 亚洲小说春色综合另类 | 国产无av码在线观看 | 亚洲第一无码av无码专区 | 小sao货水好多真紧h无码视频 | 国产亚洲人成在线播放 | 97久久精品无码一区二区 | 亚洲精品一区国产 | 丝袜美腿亚洲一区二区 | 伦伦影院午夜理论片 | 亚洲另类伦春色综合小说 | 亚洲中文字幕久久无码 | 对白脏话肉麻粗话av | 亚洲精品国产a久久久久久 | 国产又爽又黄又刺激的视频 | 久久综合激激的五月天 | 欧美野外疯狂做受xxxx高潮 | 装睡被陌生人摸出水好爽 | 欧美 亚洲 国产 另类 | 中文字幕乱妇无码av在线 | 无码任你躁久久久久久久 | 亚洲欧美日韩成人高清在线一区 | 国产一区二区不卡老阿姨 | 精品久久8x国产免费观看 | 中文亚洲成a人片在线观看 | 色噜噜亚洲男人的天堂 | 日日碰狠狠丁香久燥 | 亚洲欧洲日本综合aⅴ在线 | 中文字幕乱妇无码av在线 | 对白脏话肉麻粗话av | 亚洲 a v无 码免 费 成 人 a v | 狠狠综合久久久久综合网 | 欧洲vodafone精品性 | 亚洲一区二区三区国产精华液 | 久久精品国产精品国产精品污 | 国产午夜福利100集发布 | 亚洲中文字幕在线无码一区二区 | 色综合久久久久综合一本到桃花网 | 97色伦图片97综合影院 | 激情人妻另类人妻伦 | 少妇性荡欲午夜性开放视频剧场 | av人摸人人人澡人人超碰下载 | 无码人妻精品一区二区三区不卡 | 最近的中文字幕在线看视频 | 国产精品永久免费视频 | 人人妻人人澡人人爽欧美一区九九 | 国产精品鲁鲁鲁 | 偷窥村妇洗澡毛毛多 | 国内精品久久久久久中文字幕 | 日韩精品无码一本二本三本色 | 人人澡人摸人人添 | 天下第一社区视频www日本 | 67194成是人免费无码 | 中文无码精品a∨在线观看不卡 | 秋霞成人午夜鲁丝一区二区三区 | 正在播放老肥熟妇露脸 | 国产办公室秘书无码精品99 | 精品久久久中文字幕人妻 | 欧美阿v高清资源不卡在线播放 | 伊人久久大香线焦av综合影院 | 欧美日韩亚洲国产精品 | 国产成人综合美国十次 | 国产亚av手机在线观看 | 久久国产精品偷任你爽任你 | 人人妻人人澡人人爽欧美一区 | 亚洲人亚洲人成电影网站色 | 欧美一区二区三区 | 国产精品亚洲lv粉色 | 天堂一区人妻无码 | 丝袜足控一区二区三区 | 99视频精品全部免费免费观看 | 麻豆国产人妻欲求不满 | 中文字幕无线码免费人妻 | 国产国产精品人在线视 | 国产精品第一区揄拍无码 | 精品国产aⅴ无码一区二区 | 亚洲中文字幕乱码av波多ji | 内射欧美老妇wbb | 熟妇人妻无码xxx视频 | 久久99久久99精品中文字幕 | 国产9 9在线 | 中文 | 在线观看国产一区二区三区 | 无码福利日韩神码福利片 | 亚洲熟熟妇xxxx | 精品国产成人一区二区三区 | 欧美丰满老熟妇xxxxx性 | 女人高潮内射99精品 | 中文字幕无码视频专区 | 中文字幕无码热在线视频 | 色欲久久久天天天综合网精品 | 男人扒开女人内裤强吻桶进去 | 亚洲精品国产精品乱码视色 | 国产精品人人妻人人爽 | 男女性色大片免费网站 | 美女极度色诱视频国产 | 初尝人妻少妇中文字幕 | 亚洲国产精品久久人人爱 | 天天躁夜夜躁狠狠是什么心态 | 亚洲综合另类小说色区 | 亚洲精品无码人妻无码 | 国产一区二区三区精品视频 | 伊人色综合久久天天小片 | 久久国产精品二国产精品 | 成人片黄网站色大片免费观看 | 亚洲天堂2017无码中文 | 国产精品久久久久影院嫩草 | 欧美日韩亚洲国产精品 | 波多野结衣av一区二区全免费观看 | 久久这里只有精品视频9 | 桃花色综合影院 | 曰韩无码二三区中文字幕 | 伊人久久婷婷五月综合97色 | 欧美性生交xxxxx久久久 | 亚洲阿v天堂在线 | 装睡被陌生人摸出水好爽 | 亚洲七七久久桃花影院 | 国产综合久久久久鬼色 | 国产精品久久久午夜夜伦鲁鲁 | 日日摸日日碰夜夜爽av | 久久久久99精品国产片 | 2020久久香蕉国产线看观看 | 国精产品一品二品国精品69xx | 大地资源网第二页免费观看 | 欧美精品无码一区二区三区 | 无套内射视频囯产 | 亚洲第一网站男人都懂 | 国产亚av手机在线观看 | 激情爆乳一区二区三区 | 中文字幕精品av一区二区五区 | 国内精品人妻无码久久久影院 | 久久久久人妻一区精品色欧美 | 久久久久久亚洲精品a片成人 | √8天堂资源地址中文在线 | √天堂资源地址中文在线 | 狠狠色噜噜狠狠狠7777奇米 | 俄罗斯老熟妇色xxxx | 久久久国产一区二区三区 | 亚洲呦女专区 | 牲交欧美兽交欧美 | 亚洲乱码国产乱码精品精 | 国产一区二区不卡老阿姨 | 大肉大捧一进一出好爽视频 | 日本又色又爽又黄的a片18禁 | 欧洲精品码一区二区三区免费看 | 成人aaa片一区国产精品 | 丁香花在线影院观看在线播放 | 国产人妖乱国产精品人妖 | 97夜夜澡人人爽人人喊中国片 | 蜜桃av抽搐高潮一区二区 | 日欧一片内射va在线影院 | 思思久久99热只有频精品66 | 嫩b人妻精品一区二区三区 | 中文字幕乱妇无码av在线 | 99久久婷婷国产综合精品青草免费 | 久久亚洲a片com人成 | 亚洲国产精品久久人人爱 | 久久久久久亚洲精品a片成人 | 久久精品丝袜高跟鞋 | 无码一区二区三区在线 | 国产午夜亚洲精品不卡下载 | 色老头在线一区二区三区 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲精品www久久久 | 九月婷婷人人澡人人添人人爽 | 日韩 欧美 动漫 国产 制服 | 黑人大群体交免费视频 | www一区二区www免费 | 日本一本二本三区免费 | 国产69精品久久久久app下载 | 国产三级精品三级男人的天堂 | 久精品国产欧美亚洲色aⅴ大片 | 国产国语老龄妇女a片 | 成人一区二区免费视频 | 精品 日韩 国产 欧美 视频 | av无码电影一区二区三区 | 成人欧美一区二区三区黑人免费 | 亚洲国产精品无码久久久久高潮 | www国产精品内射老师 | 欧洲欧美人成视频在线 | 亚洲国产精品久久久久久 | 亚洲欧美精品伊人久久 | 欧美午夜特黄aaaaaa片 | 国产精品久久久久久亚洲影视内衣 | 精品久久久无码中文字幕 | 午夜精品一区二区三区的区别 | 国产精品人妻一区二区三区四 | 久久精品国产大片免费观看 | 亚洲 a v无 码免 费 成 人 a v | 久久午夜无码鲁丝片秋霞 | 精品偷拍一区二区三区在线看 | 亚洲狠狠婷婷综合久久 | 日日干夜夜干 | 日韩欧美中文字幕公布 | 99久久人妻精品免费一区 | 欧美日韩综合一区二区三区 | 亚洲国产高清在线观看视频 | 久久无码专区国产精品s | 人妻天天爽夜夜爽一区二区 | 一本色道久久综合亚洲精品不卡 | 国产成人一区二区三区别 | 久久成人a毛片免费观看网站 | 欧美成人家庭影院 | 99麻豆久久久国产精品免费 | 亚洲爆乳无码专区 | 激情亚洲一区国产精品 | 粗大的内捧猛烈进出视频 | 色五月五月丁香亚洲综合网 | 97人妻精品一区二区三区 | 无码国内精品人妻少妇 | 国产内射老熟女aaaa | 国模大胆一区二区三区 | 午夜无码区在线观看 | 亚洲国产成人av在线观看 | 免费观看又污又黄的网站 | 久久亚洲国产成人精品性色 | 亚洲の无码国产の无码影院 | 真人与拘做受免费视频一 | 久久精品国产精品国产精品污 | 夫妻免费无码v看片 | 国产成人亚洲综合无码 | 亚洲精品无码人妻无码 | 成人性做爰aaa片免费看不忠 | 麻豆av传媒蜜桃天美传媒 | 一本久道高清无码视频 | 精品日本一区二区三区在线观看 | 国产免费久久久久久无码 | 99精品久久毛片a片 | 全球成人中文在线 | 亚洲精品中文字幕 | 久在线观看福利视频 | 国产色在线 | 国产 | 国内老熟妇对白xxxxhd | 日日天日日夜日日摸 | 中文字幕无码免费久久99 | 丰满人妻被黑人猛烈进入 | 久久亚洲国产成人精品性色 | 18禁止看的免费污网站 | 日韩少妇内射免费播放 | 精品水蜜桃久久久久久久 | 亚洲午夜无码久久 | 麻豆果冻传媒2021精品传媒一区下载 | 全球成人中文在线 | 日韩精品a片一区二区三区妖精 | 少妇高潮一区二区三区99 | 国产亚洲精品久久久闺蜜 | 日本在线高清不卡免费播放 | 免费乱码人妻系列无码专区 | 欧美精品免费观看二区 | 人人妻人人澡人人爽欧美一区九九 | 日本又色又爽又黄的a片18禁 | 午夜精品一区二区三区的区别 | 在线看片无码永久免费视频 | 亚洲精品一区二区三区在线 | 狂野欧美性猛xxxx乱大交 | 国产成人精品视频ⅴa片软件竹菊 | 日日麻批免费40分钟无码 | 97无码免费人妻超级碰碰夜夜 | 天天做天天爱天天爽综合网 | 亚洲精品www久久久 | 欧美人与善在线com | 又大又紧又粉嫩18p少妇 | 精品国偷自产在线 | a国产一区二区免费入口 | 男女超爽视频免费播放 | 亚洲爆乳大丰满无码专区 | 亚洲一区二区三区 | 性做久久久久久久免费看 | 精品欧洲av无码一区二区三区 | 日韩av无码中文无码电影 | 久久人妻内射无码一区三区 | 国产熟女一区二区三区四区五区 | 成人欧美一区二区三区黑人 | 我要看www免费看插插视频 | 妺妺窝人体色www在线小说 | 中文字幕中文有码在线 | 任你躁国产自任一区二区三区 | 国产香蕉尹人综合在线观看 | 国产手机在线αⅴ片无码观看 | 欧美乱妇无乱码大黄a片 | 久久久久久久人妻无码中文字幕爆 | 丰满人妻一区二区三区免费视频 | 性欧美大战久久久久久久 | 日日躁夜夜躁狠狠躁 | 久久精品女人天堂av免费观看 | 97精品国产97久久久久久免费 | 亚洲s码欧洲m码国产av | 国产成人av免费观看 | 日本欧美一区二区三区乱码 | 亚洲娇小与黑人巨大交 | 天天躁夜夜躁狠狠是什么心态 | 国内揄拍国内精品人妻 | 国产精品人人妻人人爽 | 99久久久无码国产精品免费 | 亚洲人亚洲人成电影网站色 | 亚洲gv猛男gv无码男同 | 野狼第一精品社区 | 亚洲七七久久桃花影院 | 欧美日韩久久久精品a片 | 成人av无码一区二区三区 | 精品一区二区三区无码免费视频 | 国产女主播喷水视频在线观看 | 人人妻人人澡人人爽欧美精品 | 亚洲中文字幕无码一久久区 | 亚洲天堂2017无码中文 | 亚洲精品一区二区三区大桥未久 | 久久久久成人片免费观看蜜芽 | 国产国语老龄妇女a片 | 无码帝国www无码专区色综合 | 少妇性俱乐部纵欲狂欢电影 | 97精品人妻一区二区三区香蕉 | 久久精品国产大片免费观看 | 成人亚洲精品久久久久软件 | 丝袜足控一区二区三区 | 天堂亚洲2017在线观看 | 国产精品久久久 | 无码人妻av免费一区二区三区 | 亚洲欧美日韩国产精品一区二区 | 中文字幕 人妻熟女 | 中文无码成人免费视频在线观看 | 99久久精品国产一区二区蜜芽 | 一二三四社区在线中文视频 | 国产成人无码区免费内射一片色欲 | 乱人伦人妻中文字幕无码 | 丰满少妇人妻久久久久久 | 东京无码熟妇人妻av在线网址 | 在线天堂新版最新版在线8 | 国产小呦泬泬99精品 | 色婷婷av一区二区三区之红樱桃 | 真人与拘做受免费视频一 | 色一情一乱一伦一区二区三欧美 | 国产精品爱久久久久久久 | 樱花草在线社区www | 性做久久久久久久免费看 | 少妇性l交大片欧洲热妇乱xxx | 日韩在线不卡免费视频一区 | 乌克兰少妇性做爰 | 免费无码av一区二区 | 久久99精品久久久久久动态图 | 综合激情五月综合激情五月激情1 | 久久亚洲精品成人无码 | 亚洲精品久久久久久一区二区 | 中文字幕乱码人妻二区三区 | 日本一区二区三区免费播放 | 色五月丁香五月综合五月 | 亚洲色大成网站www | 中文字幕av无码一区二区三区电影 | 亚洲啪av永久无码精品放毛片 | 欧美日韩一区二区综合 | 熟妇人妻激情偷爽文 | 久久久久久av无码免费看大片 | 两性色午夜视频免费播放 | 女人被男人爽到呻吟的视频 | 少妇激情av一区二区 | 亚洲男女内射在线播放 | 97色伦图片97综合影院 | 欧美xxxx黑人又粗又长 | 国产精品成人av在线观看 | 露脸叫床粗话东北少妇 | 无码av岛国片在线播放 | 久久久亚洲欧洲日产国码αv | 国产亚洲人成a在线v网站 | 中文字幕日产无线码一区 | 国产亚洲tv在线观看 | 欧美精品无码一区二区三区 | 成人性做爰aaa片免费看不忠 | 国产精品无码成人午夜电影 | 亚洲自偷精品视频自拍 | 夫妻免费无码v看片 | 国产另类ts人妖一区二区 | 久久99久久99精品中文字幕 | 国产真实夫妇视频 | 51国偷自产一区二区三区 | 无遮无挡爽爽免费视频 | 亚洲区欧美区综合区自拍区 | 日韩精品无码一区二区中文字幕 | 久久久精品人妻久久影视 | av在线亚洲欧洲日产一区二区 | 野狼第一精品社区 | 丁香啪啪综合成人亚洲 | 国产精品无码久久av | 久久久久人妻一区精品色欧美 | 午夜理论片yy44880影院 | 色欲综合久久中文字幕网 | 亚洲日本一区二区三区在线 | 漂亮人妻洗澡被公强 日日躁 | 99麻豆久久久国产精品免费 | 99精品视频在线观看免费 | 久久久精品成人免费观看 | 国产精品久久久久久无码 | 伊人色综合久久天天小片 | 国产激情艳情在线看视频 | 国产精品久久精品三级 | 午夜无码人妻av大片色欲 | 国产va免费精品观看 | 亚洲 高清 成人 动漫 | 成人影院yy111111在线观看 | 四虎4hu永久免费 | 人妻熟女一区 | 日日摸日日碰夜夜爽av | 好爽又高潮了毛片免费下载 | 国产午夜福利亚洲第一 | 国产成人无码午夜视频在线观看 | 亚洲中文字幕无码中文字在线 | 免费无码肉片在线观看 | 2019nv天堂香蕉在线观看 | 永久免费观看美女裸体的网站 | 亚洲日韩av一区二区三区中文 | 巨爆乳无码视频在线观看 | 久久精品丝袜高跟鞋 | 国产欧美熟妇另类久久久 | 成人精品视频一区二区三区尤物 | 国产熟女一区二区三区四区五区 | 成人av无码一区二区三区 | 日本熟妇人妻xxxxx人hd | 国语自产偷拍精品视频偷 | 久久久久成人精品免费播放动漫 | 麻豆蜜桃av蜜臀av色欲av | 日本爽爽爽爽爽爽在线观看免 | 亚洲国产欧美国产综合一区 | 色综合久久久久综合一本到桃花网 | 亚洲七七久久桃花影院 | 国产一精品一av一免费 | 欧美性色19p | 亚洲欧洲无卡二区视頻 | 欧美人与物videos另类 | 亚洲一区二区三区无码久久 | 乌克兰少妇性做爰 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲一区二区三区播放 | 亚洲 日韩 欧美 成人 在线观看 | 妺妺窝人体色www在线小说 | 日本一区二区三区免费高清 | 福利一区二区三区视频在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品办公室沙发 | 国产麻豆精品一区二区三区v视界 | 中文字幕av无码一区二区三区电影 | 国产乱人偷精品人妻a片 | 国产av一区二区精品久久凹凸 | 少妇性l交大片欧洲热妇乱xxx | 亚洲色偷偷偷综合网 | 午夜精品一区二区三区在线观看 | 亚洲日本va中文字幕 | 欧美国产日韩亚洲中文 | 玩弄少妇高潮ⅹxxxyw | 88国产精品欧美一区二区三区 | 亚洲欧美精品aaaaaa片 | 蜜臀av在线播放 久久综合激激的五月天 | 日本一卡二卡不卡视频查询 | 欧美精品一区二区精品久久 | 久久久久se色偷偷亚洲精品av | 九九热爱视频精品 | 亚洲性无码av中文字幕 | 亚洲人交乣女bbw | 在线精品亚洲一区二区 | 未满成年国产在线观看 | 一本大道伊人av久久综合 | 亚洲a无码综合a国产av中文 | 性欧美videos高清精品 | 亚洲精品无码人妻无码 | 性欧美熟妇videofreesex | 欧美人与牲动交xxxx | 色欲av亚洲一区无码少妇 | 成年女人永久免费看片 | 2020久久超碰国产精品最新 | 夜夜高潮次次欢爽av女 | 国产黄在线观看免费观看不卡 | 成年女人永久免费看片 | 一本大道久久东京热无码av | 中文字幕无码日韩专区 | 亚洲狠狠婷婷综合久久 | 日本一本二本三区免费 | 国产香蕉尹人综合在线观看 | 色 综合 欧美 亚洲 国产 | 少妇高潮喷潮久久久影院 | 日韩精品无码一本二本三本色 | 一二三四社区在线中文视频 | 欧美黑人巨大xxxxx | 任你躁国产自任一区二区三区 | 亚洲成a人片在线观看无码3d | 少妇性l交大片欧洲热妇乱xxx | 国产精品永久免费视频 | 曰韩无码二三区中文字幕 | 波多野结衣高清一区二区三区 | 婷婷丁香六月激情综合啪 | 国产片av国语在线观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 久久国产精品_国产精品 | 国产精品久免费的黄网站 | 久久人人爽人人爽人人片av高清 | 亚洲国精产品一二二线 | 国产香蕉尹人综合在线观看 | 色欲综合久久中文字幕网 | 麻豆国产人妻欲求不满谁演的 | 国产精品无码永久免费888 | 久久精品女人天堂av免费观看 | 久久99精品国产麻豆蜜芽 | 亚洲中文字幕va福利 | 日韩在线不卡免费视频一区 | 内射欧美老妇wbb | 欧美zoozzooz性欧美 | 日本熟妇人妻xxxxx人hd | 色欲综合久久中文字幕网 | 99久久无码一区人妻 | 久久亚洲国产成人精品性色 | 日日干夜夜干 | 久久久久久久女国产乱让韩 | 撕开奶罩揉吮奶头视频 | 国产小呦泬泬99精品 | 国产超碰人人爽人人做人人添 | 妺妺窝人体色www在线小说 | 欧美激情综合亚洲一二区 | 婷婷五月综合缴情在线视频 | 久久精品99久久香蕉国产色戒 | 青草青草久热国产精品 | 精品无人国产偷自产在线 | 国产9 9在线 | 中文 | 人人澡人人妻人人爽人人蜜桃 | 无码一区二区三区在线观看 | 丰满妇女强制高潮18xxxx | 国产午夜福利100集发布 | 蜜桃臀无码内射一区二区三区 | 在线播放亚洲第一字幕 | 网友自拍区视频精品 | 国产精品怡红院永久免费 | 亚洲国产一区二区三区在线观看 | 久久综合激激的五月天 | 丰满人妻翻云覆雨呻吟视频 | 久久亚洲中文字幕无码 | 亚洲精品午夜无码电影网 | 狂野欧美性猛交免费视频 | a国产一区二区免费入口 | 少妇的肉体aa片免费 | 亚洲一区av无码专区在线观看 | 国产午夜手机精彩视频 | 美女极度色诱视频国产 | 男女超爽视频免费播放 | 国产精品亚洲综合色区韩国 | 高潮毛片无遮挡高清免费视频 | 亚洲s码欧洲m码国产av | 亚洲精品一区二区三区在线观看 | 国语自产偷拍精品视频偷 | 免费男性肉肉影院 | 在线看片无码永久免费视频 | 天天做天天爱天天爽综合网 | 国产在线精品一区二区三区直播 | 亚洲 日韩 欧美 成人 在线观看 | 成人亚洲精品久久久久 | www国产亚洲精品久久网站 | 少妇无套内谢久久久久 | 蜜桃臀无码内射一区二区三区 | 欧美性色19p | 成人无码视频在线观看网站 | 亚洲国产精品毛片av不卡在线 | 97久久超碰中文字幕 | 黑森林福利视频导航 | 丝袜足控一区二区三区 | 免费男性肉肉影院 | 国产精品亚洲а∨无码播放麻豆 | 国产网红无码精品视频 | 精品国产精品久久一区免费式 | 波多野结衣av一区二区全免费观看 | 3d动漫精品啪啪一区二区中 | 久久精品99久久香蕉国产色戒 | 亚洲一区av无码专区在线观看 | 性生交大片免费看女人按摩摩 | 99久久人妻精品免费二区 | 欧美性猛交xxxx富婆 | 日韩精品无码一区二区中文字幕 | 亚洲人亚洲人成电影网站色 | 亚洲欧美国产精品久久 | 中文久久乱码一区二区 | 国产婷婷色一区二区三区在线 | 丰满岳乱妇在线观看中字无码 | 伊人久久大香线焦av综合影院 | 国内精品久久久久久中文字幕 | 麻豆国产97在线 | 欧洲 | 中文字幕久久久久人妻 | 国产精品亚洲专区无码不卡 | 精品一区二区不卡无码av | 高潮毛片无遮挡高清免费视频 | 日本乱偷人妻中文字幕 | 亚洲最大成人网站 | 人人妻在人人 | 少妇邻居内射在线 | 无码av最新清无码专区吞精 | 国产熟女一区二区三区四区五区 | v一区无码内射国产 | 欧美丰满老熟妇xxxxx性 | 国产 浪潮av性色四虎 | 国产午夜无码视频在线观看 | 曰韩少妇内射免费播放 | 国产午夜亚洲精品不卡下载 | 高清不卡一区二区三区 | 亚洲中文字幕在线无码一区二区 | 学生妹亚洲一区二区 | 国产在线aaa片一区二区99 | 久久精品国产亚洲精品 | 久久久精品456亚洲影院 | 亚洲高清偷拍一区二区三区 | 亚洲精品综合一区二区三区在线 | 国精品人妻无码一区二区三区蜜柚 | 伊人久久婷婷五月综合97色 | 天天燥日日燥 | 久久人人爽人人爽人人片ⅴ | 无码一区二区三区在线 | 中国女人内谢69xxxxxa片 | 老熟女乱子伦 | 国产特级毛片aaaaaa高潮流水 | 装睡被陌生人摸出水好爽 | 精品亚洲韩国一区二区三区 | 无码纯肉视频在线观看 | 久久久久成人片免费观看蜜芽 | 曰本女人与公拘交酡免费视频 | 国产成人无码一二三区视频 | 久久99精品久久久久婷婷 | 国内综合精品午夜久久资源 | 亚洲精品无码人妻无码 | 少妇高潮喷潮久久久影院 | 在线a亚洲视频播放在线观看 | 欧美老妇与禽交 | 人妻aⅴ无码一区二区三区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国産精品久久久久久久 | 岛国片人妻三上悠亚 | 乱人伦人妻中文字幕无码 | 中文字幕日韩精品一区二区三区 | 乱人伦人妻中文字幕无码 | 网友自拍区视频精品 | 国产av一区二区精品久久凹凸 | 网友自拍区视频精品 | 九九综合va免费看 | 亚洲第一无码av无码专区 | 久久综合香蕉国产蜜臀av | 精品水蜜桃久久久久久久 | 久久久精品欧美一区二区免费 | 欧美丰满熟妇xxxx性ppx人交 | 又大又硬又黄的免费视频 | ass日本丰满熟妇pics | 领导边摸边吃奶边做爽在线观看 | 久久亚洲a片com人成 | 俺去俺来也www色官网 | 老熟妇仑乱视频一区二区 | 中文字幕日韩精品一区二区三区 | 欧美喷潮久久久xxxxx | 国产精品亚洲综合色区韩国 | 一本久久a久久精品亚洲 | 免费网站看v片在线18禁无码 | 免费观看的无遮挡av | 国产9 9在线 | 中文 | 欧美人妻一区二区三区 | 国内揄拍国内精品人妻 | 秋霞成人午夜鲁丝一区二区三区 | 在线 国产 欧美 亚洲 天堂 | 一本大道久久东京热无码av | 99久久99久久免费精品蜜桃 | 夜先锋av资源网站 | 少妇一晚三次一区二区三区 | 兔费看少妇性l交大片免费 | 日韩在线不卡免费视频一区 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产精品人妻一区二区三区四 | 国产精品二区一区二区aⅴ污介绍 | 亚洲精品久久久久avwww潮水 | 丰满护士巨好爽好大乳 | 国产人妻人伦精品1国产丝袜 | 国产精品.xx视频.xxtv | 无码任你躁久久久久久久 | 日本一卡2卡3卡四卡精品网站 | 日本xxxx色视频在线观看免费 | 美女扒开屁股让男人桶 | 国产午夜无码视频在线观看 | 蜜臀aⅴ国产精品久久久国产老师 | 日韩av无码一区二区三区不卡 | 蜜桃视频插满18在线观看 | 欧美午夜特黄aaaaaa片 | 午夜男女很黄的视频 | 300部国产真实乱 | 午夜嘿嘿嘿影院 | 无码国产激情在线观看 | 天堂无码人妻精品一区二区三区 | 中文字幕人妻无码一区二区三区 | 男女超爽视频免费播放 | 亚洲欧美中文字幕5发布 | 国产真人无遮挡作爱免费视频 | 小sao货水好多真紧h无码视频 | 99久久人妻精品免费二区 | 国产精品毛多多水多 | 午夜不卡av免费 一本久久a久久精品vr综合 | 丝袜 中出 制服 人妻 美腿 | 老司机亚洲精品影院无码 | 伊人久久大香线蕉亚洲 | 在线а√天堂中文官网 | 中文字幕av伊人av无码av | 色窝窝无码一区二区三区色欲 | 亚洲国产精华液网站w | 欧美人与善在线com | 色 综合 欧美 亚洲 国产 | 国产精品亚洲综合色区韩国 | 男女下面进入的视频免费午夜 | 亚洲爆乳精品无码一区二区三区 | 成人无码视频免费播放 | 亚洲综合色区中文字幕 | 小鲜肉自慰网站xnxx | 亚洲欧美精品aaaaaa片 | 亚洲欧美国产精品专区久久 | www一区二区www免费 | 人妻与老人中文字幕 | 国产综合久久久久鬼色 | 国产亚洲人成在线播放 | 亚洲国产精华液网站w | 在线成人www免费观看视频 | 色综合天天综合狠狠爱 | 人妻插b视频一区二区三区 | 欧美人与物videos另类 | 国产精品久久久久久无码 | 国产精品资源一区二区 | 狠狠噜狠狠狠狠丁香五月 | 精品少妇爆乳无码av无码专区 | 久久精品国产大片免费观看 | 国产激情综合五月久久 | 久久综合狠狠综合久久综合88 | 国产麻豆精品精东影业av网站 | 亚洲成av人综合在线观看 | 亚洲欧美日韩成人高清在线一区 | 999久久久国产精品消防器材 | 人妻插b视频一区二区三区 | 亚洲一区二区三区含羞草 | 精品无码国产自产拍在线观看蜜 | 欧美丰满熟妇xxxx性ppx人交 | 精品夜夜澡人妻无码av蜜桃 | 超碰97人人做人人爱少妇 | 曰韩无码二三区中文字幕 | 正在播放老肥熟妇露脸 | 免费无码一区二区三区蜜桃大 | а天堂中文在线官网 | 综合网日日天干夜夜久久 | 久久综合九色综合欧美狠狠 | 国产亚洲人成在线播放 | 日日干夜夜干 | 18禁黄网站男男禁片免费观看 | 人妻少妇精品无码专区动漫 | 国产又爽又黄又刺激的视频 | 人妻无码αv中文字幕久久琪琪布 | 暴力强奷在线播放无码 | 久久久久av无码免费网 | 成人动漫在线观看 | 婷婷丁香六月激情综合啪 | 久久综合狠狠综合久久综合88 | 欧美熟妇另类久久久久久不卡 | 久久久久久a亚洲欧洲av冫 | 高清国产亚洲精品自在久久 | 中文字幕av日韩精品一区二区 | 麻豆精产国品 | 六十路熟妇乱子伦 | 国产亚洲精品久久久久久久久动漫 | 丝袜足控一区二区三区 | 狠狠色欧美亚洲狠狠色www | 免费无码的av片在线观看 | 波多野42部无码喷潮在线 | 青青久在线视频免费观看 | 亚洲人成影院在线无码按摩店 | 亚洲 激情 小说 另类 欧美 | 欧美人与牲动交xxxx | 99国产欧美久久久精品 | 国产人妖乱国产精品人妖 | 人人妻人人澡人人爽人人精品 | 久久精品国产99久久6动漫 | 人妻少妇精品视频专区 | 成人欧美一区二区三区黑人 | 久久综合九色综合97网 | 免费国产成人高清在线观看网站 | 老司机亚洲精品影院无码 | 精品日本一区二区三区在线观看 | 国产色精品久久人妻 | 永久黄网站色视频免费直播 | 熟妇人妻无乱码中文字幕 | 久久久久亚洲精品中文字幕 | 国产亚洲美女精品久久久2020 | 日本xxxx色视频在线观看免费 | 性欧美熟妇videofreesex | 蜜臀aⅴ国产精品久久久国产老师 | 精品无码一区二区三区爱欲 | 久久亚洲a片com人成 | 7777奇米四色成人眼影 | 精品无人区无码乱码毛片国产 | 国产两女互慰高潮视频在线观看 | 久久国产精品偷任你爽任你 | 欧美午夜特黄aaaaaa片 | 欧美成人高清在线播放 | 成人欧美一区二区三区黑人 | 中文精品无码中文字幕无码专区 | 国产乱人伦偷精品视频 | 国产成人无码a区在线观看视频app | 免费无码一区二区三区蜜桃大 | 午夜熟女插插xx免费视频 | 亚洲自偷自偷在线制服 | 人人爽人人爽人人片av亚洲 | 亚洲欧美精品伊人久久 | 18无码粉嫩小泬无套在线观看 | 欧美日韩人成综合在线播放 | 国产网红无码精品视频 | 久久精品国产亚洲精品 | 午夜无码人妻av大片色欲 | 成人精品视频一区二区三区尤物 | 精品 日韩 国产 欧美 视频 | 国产亚洲精品久久久ai换 | 久久精品无码一区二区三区 | 人人妻人人澡人人爽欧美精品 | 55夜色66夜色国产精品视频 | 精品国精品国产自在久国产87 | v一区无码内射国产 | 国产激情无码一区二区app | 亚洲の无码国产の无码步美 | 精品一区二区三区波多野结衣 | 国产精品二区一区二区aⅴ污介绍 | 久久久久亚洲精品中文字幕 | 精品国产一区av天美传媒 | 久久综合久久自在自线精品自 | 亚洲国产精华液网站w | 欧美日韩精品 | 四虎永久在线精品免费网址 | 久久久久久av无码免费看大片 | 好男人www社区 | 学生妹亚洲一区二区 | 性色欲情网站iwww九文堂 | 欧美老人巨大xxxx做受 | 国产真人无遮挡作爱免费视频 | 国产香蕉尹人视频在线 | 国产精品99爱免费视频 | 一个人免费观看的www视频 | 国产偷国产偷精品高清尤物 | 男女猛烈xx00免费视频试看 | 无码精品人妻一区二区三区av | 久久国产精品萌白酱免费 | 日本精品少妇一区二区三区 | 日本精品人妻无码77777 天堂一区人妻无码 | 日日麻批免费40分钟无码 | 国产精品毛多多水多 | 中文无码伦av中文字幕 | 精品国产aⅴ无码一区二区 | 丰满少妇熟乱xxxxx视频 | 狂野欧美激情性xxxx | 理论片87福利理论电影 | 少女韩国电视剧在线观看完整 | 色五月五月丁香亚洲综合网 | 宝宝好涨水快流出来免费视频 | 欧美人妻一区二区三区 | 久久99久久99精品中文字幕 | 国产成人午夜福利在线播放 | 99riav国产精品视频 | 亚洲中文字幕成人无码 | 欧美三级不卡在线观看 | 国产成人无码区免费内射一片色欲 | 国产情侣作爱视频免费观看 | 亚洲熟妇色xxxxx亚洲 | 国产一区二区三区四区五区加勒比 | 三上悠亚人妻中文字幕在线 | 强伦人妻一区二区三区视频18 | 婷婷丁香六月激情综合啪 | 全球成人中文在线 | 天天摸天天透天天添 | 亚洲国产av精品一区二区蜜芽 | 久久久久亚洲精品中文字幕 | 俄罗斯老熟妇色xxxx | 无码乱肉视频免费大全合集 | 无码毛片视频一区二区本码 | 动漫av一区二区在线观看 | 中文字幕无线码 | 少妇一晚三次一区二区三区 | 国产无遮挡又黄又爽免费视频 | 久久亚洲精品成人无码 | 婷婷丁香五月天综合东京热 | 无码精品人妻一区二区三区av | 久久久www成人免费毛片 | 国产成人无码一二三区视频 | 在线观看免费人成视频 | 国产亚洲精品久久久ai换 | 日本一区二区三区免费播放 | 国产又爽又黄又刺激的视频 | 人人爽人人澡人人高潮 | 少妇邻居内射在线 | 日本va欧美va欧美va精品 | 国产精品久久久久影院嫩草 | 亚洲另类伦春色综合小说 | 97色伦图片97综合影院 | 成人亚洲精品久久久久软件 | 黄网在线观看免费网站 | 久久精品中文闷骚内射 | 国内揄拍国内精品少妇国语 | 亚洲熟妇色xxxxx欧美老妇y | 免费网站看v片在线18禁无码 | 国产人妻精品一区二区三区不卡 | 国产成人综合在线女婷五月99播放 | 国产欧美熟妇另类久久久 | 亚洲の无码国产の无码步美 | 国产免费久久精品国产传媒 | 亚洲男人av香蕉爽爽爽爽 | 亚洲色成人中文字幕网站 | 中文字幕色婷婷在线视频 | 偷窥日本少妇撒尿chinese | 日韩精品a片一区二区三区妖精 | 大屁股大乳丰满人妻 | 巨爆乳无码视频在线观看 | 免费人成在线视频无码 | 日韩精品无码免费一区二区三区 | 特大黑人娇小亚洲女 | 国产亚洲视频中文字幕97精品 | 日韩精品乱码av一区二区 | 丰满岳乱妇在线观看中字无码 | 丰满少妇女裸体bbw | 性欧美大战久久久久久久 | 国产精品无码成人午夜电影 | 中文字幕 亚洲精品 第1页 | 精品欧美一区二区三区久久久 | 荫蒂添的好舒服视频囗交 | √8天堂资源地址中文在线 | 玩弄少妇高潮ⅹxxxyw | 麻豆精品国产精华精华液好用吗 | 亚洲色无码一区二区三区 | 无码人妻精品一区二区三区下载 | 黑人大群体交免费视频 | 丰满少妇女裸体bbw | 麻花豆传媒剧国产免费mv在线 | 婷婷五月综合缴情在线视频 | 99久久无码一区人妻 | 5858s亚洲色大成网站www | 精品aⅴ一区二区三区 | 日本免费一区二区三区最新 | 国产香蕉97碰碰久久人人 | 野狼第一精品社区 | 无码乱肉视频免费大全合集 | www国产亚洲精品久久网站 | 又紧又大又爽精品一区二区 | 强辱丰满人妻hd中文字幕 | 欧美国产日韩亚洲中文 | 午夜理论片yy44880影院 | 性欧美videos高清精品 | 伊人色综合久久天天小片 | 亚洲国产一区二区三区在线观看 | 噜噜噜亚洲色成人网站 | 清纯唯美经典一区二区 | 97人妻精品一区二区三区 | 日本一卡二卡不卡视频查询 | 精品少妇爆乳无码av无码专区 | 亚洲国产欧美国产综合一区 | 日韩欧美中文字幕公布 | 日本www一道久久久免费榴莲 | 中文字幕无码免费久久99 | 男人扒开女人内裤强吻桶进去 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲一区二区三区无码久久 | 十八禁视频网站在线观看 | 色诱久久久久综合网ywww | 亚洲精品欧美二区三区中文字幕 | 国产网红无码精品视频 | 成人综合网亚洲伊人 | 久久国产精品偷任你爽任你 | 国产又爽又猛又粗的视频a片 | 久久99精品久久久久久 | 国产精品怡红院永久免费 | 久久精品国产一区二区三区 | 午夜精品久久久久久久久 | 无码人妻丰满熟妇区毛片18 | 国产免费无码一区二区视频 | 欧美 日韩 人妻 高清 中文 | 欧美精品一区二区精品久久 | 一个人看的www免费视频在线观看 | 国产免费无码一区二区视频 | 国产无av码在线观看 | 中文字幕+乱码+中文字幕一区 | 免费人成在线视频无码 | 欧美变态另类xxxx | 无码国产乱人伦偷精品视频 | 亚洲精品一区二区三区四区五区 | 国产舌乚八伦偷品w中 | 无遮无挡爽爽免费视频 | 国产亚洲精品精品国产亚洲综合 | 丁香花在线影院观看在线播放 | 国产精品毛多多水多 | 久久久精品456亚洲影院 | 色噜噜亚洲男人的天堂 | 亚洲精品欧美二区三区中文字幕 | 国产色xx群视频射精 | 中文字幕色婷婷在线视频 | 丰满少妇女裸体bbw | 激情内射日本一区二区三区 | 夜夜高潮次次欢爽av女 | а√天堂www在线天堂小说 | 性欧美牲交xxxxx视频 | 久久久av男人的天堂 | 丰满岳乱妇在线观看中字无码 | 97久久精品无码一区二区 | 色综合久久久无码网中文 | 97久久超碰中文字幕 | 亚洲gv猛男gv无码男同 | 国产精品久免费的黄网站 | 午夜肉伦伦影院 | 国产亚洲视频中文字幕97精品 | 老熟妇乱子伦牲交视频 | 亚洲日韩精品欧美一区二区 | 亚洲一区二区三区含羞草 | 老头边吃奶边弄进去呻吟 | 国产内射爽爽大片视频社区在线 | 无码av中文字幕免费放 | 色一情一乱一伦一区二区三欧美 | 特大黑人娇小亚洲女 | 高清国产亚洲精品自在久久 | 一区二区三区高清视频一 | 在线观看免费人成视频 | 婷婷色婷婷开心五月四房播播 | 天堂无码人妻精品一区二区三区 | 少妇无码一区二区二三区 | 特黄特色大片免费播放器图片 | 秋霞成人午夜鲁丝一区二区三区 | 欧美精品一区二区精品久久 | 免费无码一区二区三区蜜桃大 | 无码国产色欲xxxxx视频 | 小sao货水好多真紧h无码视频 | 性生交大片免费看女人按摩摩 | 小sao货水好多真紧h无码视频 | 国产尤物精品视频 | 精品无码av一区二区三区 | 亚洲精品国产精品乱码视色 | 欧美真人作爱免费视频 | 精品人人妻人人澡人人爽人人 | 亚洲日韩精品欧美一区二区 | 思思久久99热只有频精品66 | 欧美自拍另类欧美综合图片区 | 久久综合狠狠综合久久综合88 | 黑人粗大猛烈进出高潮视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 狠狠色欧美亚洲狠狠色www | 国产亚洲欧美日韩亚洲中文色 | 人妻少妇精品无码专区动漫 | 在线观看国产一区二区三区 | 偷窥村妇洗澡毛毛多 | 久久久久久国产精品无码下载 | 丰满诱人的人妻3 | 波多野结衣乳巨码无在线观看 | 精品午夜福利在线观看 | 狠狠噜狠狠狠狠丁香五月 | 国产成人无码a区在线观看视频app | 国产人妻精品午夜福利免费 | 7777奇米四色成人眼影 | 日本va欧美va欧美va精品 | 伊人色综合久久天天小片 | 噜噜噜亚洲色成人网站 | 沈阳熟女露脸对白视频 | 亚洲精品久久久久avwww潮水 | 欧美大屁股xxxxhd黑色 | 国产超级va在线观看视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 88国产精品欧美一区二区三区 | 国产国产精品人在线视 | 成人aaa片一区国产精品 | 2020久久超碰国产精品最新 | 免费网站看v片在线18禁无码 | 亚洲熟熟妇xxxx | 丝袜足控一区二区三区 | 精品夜夜澡人妻无码av蜜桃 | 亚洲熟女一区二区三区 | 欧美三级a做爰在线观看 | 亚洲色大成网站www | 天天燥日日燥 | 少妇人妻偷人精品无码视频 | 少妇性l交大片欧洲热妇乱xxx | 欧美日韩久久久精品a片 | 久精品国产欧美亚洲色aⅴ大片 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲欧美国产精品专区久久 | 久久人妻内射无码一区三区 | 国产亚洲欧美在线专区 | 西西人体www44rt大胆高清 | 天天躁日日躁狠狠躁免费麻豆 | 老司机亚洲精品影院 | 国产亚洲日韩欧美另类第八页 | 国产亚洲精品久久久久久久久动漫 | 国产在热线精品视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 精品国偷自产在线视频 | 国产精品va在线播放 | 久久久久成人精品免费播放动漫 | 国产亚洲精品精品国产亚洲综合 | 成人亚洲精品久久久久 | 欧美激情一区二区三区成人 | 国产成人无码一二三区视频 | 99国产精品白浆在线观看免费 | 国产一区二区三区影院 | 国产9 9在线 | 中文 | 亚洲精品国产品国语在线观看 | 久久午夜夜伦鲁鲁片无码免费 | 久久久久亚洲精品中文字幕 | 学生妹亚洲一区二区 | 精品水蜜桃久久久久久久 | 国产精品无码成人午夜电影 | 任你躁在线精品免费 | 精品久久久无码人妻字幂 | 美女张开腿让人桶 | 一个人看的www免费视频在线观看 | 99视频精品全部免费免费观看 | 国产97色在线 | 免 | 最新国产麻豆aⅴ精品无码 | 免费无码一区二区三区蜜桃大 | 成人性做爰aaa片免费看 | 日本熟妇浓毛 | 亚洲国产精品久久人人爱 | 久久熟妇人妻午夜寂寞影院 | 久久99精品国产麻豆 | 99麻豆久久久国产精品免费 | 成人综合网亚洲伊人 | 天天爽夜夜爽夜夜爽 | 国产精品高潮呻吟av久久4虎 | 人妻少妇被猛烈进入中文字幕 | 大肉大捧一进一出好爽视频 | 88国产精品欧美一区二区三区 | 奇米影视7777久久精品人人爽 | 激情内射亚州一区二区三区爱妻 | 国产激情精品一区二区三区 | 亚洲另类伦春色综合小说 | 一个人看的视频www在线 | 人人爽人人澡人人高潮 | 国产特级毛片aaaaaa高潮流水 | 国产偷抇久久精品a片69 | 荫蒂被男人添的好舒服爽免费视频 | 国产精品久久久av久久久 | 牲交欧美兽交欧美 | 欧美丰满熟妇xxxx性ppx人交 | 欧美国产日韩亚洲中文 | 无码人妻av免费一区二区三区 | 人妻人人添人妻人人爱 | 色婷婷香蕉在线一区二区 | 午夜福利一区二区三区在线观看 | 成人亚洲精品久久久久 | 午夜福利一区二区三区在线观看 | 亚洲自偷自拍另类第1页 | 成年美女黄网站色大免费全看 | 无码人妻久久一区二区三区不卡 | 在线观看国产午夜福利片 | 妺妺窝人体色www在线小说 | 成人欧美一区二区三区 | 国产极品视觉盛宴 | 亚洲色大成网站www国产 | 性色欲情网站iwww九文堂 | 亚洲小说春色综合另类 | 国产综合色产在线精品 | 午夜无码区在线观看 | 日韩无码专区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产成人精品三级麻豆 | 四十如虎的丰满熟妇啪啪 | 精品无码国产自产拍在线观看蜜 | 日本爽爽爽爽爽爽在线观看免 | 成人欧美一区二区三区黑人 | 日本在线高清不卡免费播放 | 国产精品资源一区二区 | 老司机亚洲精品影院无码 | 中文字幕 亚洲精品 第1页 | 性生交大片免费看女人按摩摩 | 99精品国产综合久久久久五月天 | 国产亚洲欧美在线专区 | aⅴ亚洲 日韩 色 图网站 播放 | 日本乱人伦片中文三区 | 内射巨臀欧美在线视频 | 国产在线精品一区二区高清不卡 | 免费中文字幕日韩欧美 | 亚洲成熟女人毛毛耸耸多 | 男女猛烈xx00免费视频试看 | 性欧美疯狂xxxxbbbb | 天天躁夜夜躁狠狠是什么心态 | 蜜桃视频插满18在线观看 | 亚洲人成无码网www | 性欧美牲交xxxxx视频 | 亚洲色偷偷男人的天堂 | 牲交欧美兽交欧美 | 国产av久久久久精东av | 精品国产一区二区三区四区在线看 | 午夜精品一区二区三区的区别 | 国产97人人超碰caoprom | 国产精品人妻一区二区三区四 | 一本久久伊人热热精品中文字幕 | 日韩人妻无码一区二区三区久久99 | 真人与拘做受免费视频 | 久久伊人色av天堂九九小黄鸭 | 无码中文字幕色专区 | 欧美人与善在线com | av无码不卡在线观看免费 | 久久久久久亚洲精品a片成人 | 无码乱肉视频免费大全合集 | 欧美熟妇另类久久久久久多毛 | 亚洲精品www久久久 | 蜜桃av抽搐高潮一区二区 | 国产精品-区区久久久狼 | 天天摸天天透天天添 | 亚洲 日韩 欧美 成人 在线观看 | 国产精品18久久久久久麻辣 | 东京热一精品无码av | 国产黑色丝袜在线播放 | 久久久久成人片免费观看蜜芽 | 欧美freesex黑人又粗又大 | 日本饥渴人妻欲求不满 | 露脸叫床粗话东北少妇 | 久久伊人色av天堂九九小黄鸭 | 99久久精品午夜一区二区 | 欧美亚洲国产一区二区三区 | 天海翼激烈高潮到腰振不止 | 内射老妇bbwx0c0ck | 东北女人啪啪对白 | 免费无码午夜福利片69 | 扒开双腿疯狂进出爽爽爽视频 | 日韩精品一区二区av在线 | 日日天日日夜日日摸 | 国产亚洲精品久久久ai换 | 亚洲爆乳精品无码一区二区三区 | 久久精品成人欧美大片 | 欧美亚洲日韩国产人成在线播放 | 精品国产一区二区三区av 性色 | 亚洲午夜无码久久 | 色一情一乱一伦一视频免费看 | 国产欧美熟妇另类久久久 | 国产亚洲人成在线播放 | 亚洲乱码中文字幕在线 | 伊人久久婷婷五月综合97色 | 午夜精品久久久久久久 | 国产超碰人人爽人人做人人添 | 亚洲狠狠婷婷综合久久 | 亚洲精品午夜国产va久久成人 | 精品久久久无码中文字幕 | 亚洲日韩乱码中文无码蜜桃臀网站 | 中文无码精品a∨在线观看不卡 | 香港三级日本三级妇三级 | 理论片87福利理论电影 | 秋霞特色aa大片 | 综合激情五月综合激情五月激情1 | 中文字幕无码av波多野吉衣 | 免费国产成人高清在线观看网站 | 国产精品自产拍在线观看 | 亚洲精品中文字幕久久久久 | 久久久久久久人妻无码中文字幕爆 | 国产午夜无码视频在线观看 | 玩弄中年熟妇正在播放 | 久久久久免费看成人影片 | 中文字幕人妻无码一夲道 | 国产又粗又硬又大爽黄老大爷视 | 妺妺窝人体色www在线小说 | 亚洲日韩乱码中文无码蜜桃臀网站 | 日本精品人妻无码免费大全 | 乱人伦人妻中文字幕无码 | 欧美人与禽猛交狂配 | 中文字幕无码免费久久99 | 欧洲极品少妇 | 狠狠cao日日穞夜夜穞av | 一本久道久久综合婷婷五月 | 人妻少妇被猛烈进入中文字幕 | 国产精品对白交换视频 | 在线精品亚洲一区二区 | 国产精品成人av在线观看 | 少妇无码一区二区二三区 | 久久精品中文闷骚内射 | 久久亚洲日韩精品一区二区三区 | 国产免费久久久久久无码 | 亚洲国产午夜精品理论片 | 男女爱爱好爽视频免费看 | 久久久精品国产sm最大网站 | 国产午夜福利亚洲第一 | 精品久久久无码人妻字幂 | 婷婷丁香五月天综合东京热 | 丰满人妻被黑人猛烈进入 | 亚洲综合无码久久精品综合 | 久久国产精品萌白酱免费 | 国产一区二区三区影院 | 久久久精品456亚洲影院 | 性欧美牲交xxxxx视频 | 欧美怡红院免费全部视频 | 成人亚洲精品久久久久 | 国产无遮挡吃胸膜奶免费看 | 国产免费久久久久久无码 | 免费无码肉片在线观看 | 亲嘴扒胸摸屁股激烈网站 | 国内精品久久久久久中文字幕 | 成人无码精品一区二区三区 | 久久久久99精品国产片 | 内射巨臀欧美在线视频 | 99精品无人区乱码1区2区3区 | 日本一区二区更新不卡 | 国产婷婷色一区二区三区在线 | 美女极度色诱视频国产 | 亚洲 高清 成人 动漫 | 欧美大屁股xxxxhd黑色 | 东京热男人av天堂 | 久久久久亚洲精品男人的天堂 | 男女超爽视频免费播放 | 欧美人与动性行为视频 | 午夜精品一区二区三区的区别 | 国产人妻人伦精品 | 人妻互换免费中文字幕 | 天天燥日日燥 | 丰满人妻被黑人猛烈进入 | 国产亚洲欧美日韩亚洲中文色 | 中文亚洲成a人片在线观看 | 日本精品高清一区二区 | 久久无码中文字幕免费影院蜜桃 | 国产精品鲁鲁鲁 | 国产麻豆精品精东影业av网站 | 亚欧洲精品在线视频免费观看 | 青草青草久热国产精品 | 丰满肥臀大屁股熟妇激情视频 | 在线а√天堂中文官网 | 老司机亚洲精品影院 | 亚洲最大成人网站 | 亚洲精品一区二区三区大桥未久 | 亚洲日本在线电影 | 色窝窝无码一区二区三区色欲 | aⅴ在线视频男人的天堂 | 97久久超碰中文字幕 | 日韩精品无码一本二本三本色 | 嫩b人妻精品一区二区三区 | 国产亚洲欧美在线专区 | 波多野结衣一区二区三区av免费 | 国产黄在线观看免费观看不卡 | 国产又粗又硬又大爽黄老大爷视 | 乱人伦人妻中文字幕无码 | 久久午夜无码鲁丝片午夜精品 | 人妻少妇精品视频专区 | 牲交欧美兽交欧美 | 国产激情无码一区二区app | 成年美女黄网站色大免费全看 | 天天做天天爱天天爽综合网 | 狠狠色欧美亚洲狠狠色www | 99久久精品日本一区二区免费 | 欧美亚洲国产一区二区三区 | 窝窝午夜理论片影院 | 人妻体内射精一区二区三四 | 国产69精品久久久久app下载 | 日本护士xxxxhd少妇 | 久精品国产欧美亚洲色aⅴ大片 | 无码一区二区三区在线 | 性欧美大战久久久久久久 | 免费看少妇作爱视频 | 精品午夜福利在线观看 | 俺去俺来也www色官网 | av无码久久久久不卡免费网站 | 7777奇米四色成人眼影 | 国产午夜无码精品免费看 | 国产真实乱对白精彩久久 | 国内揄拍国内精品少妇国语 | 性色av无码免费一区二区三区 | 午夜精品一区二区三区的区别 | 国产凸凹视频一区二区 | 特级做a爰片毛片免费69 | 国产精品a成v人在线播放 | 亚洲国产精品毛片av不卡在线 | 日韩人妻无码一区二区三区久久99 | 欧洲美熟女乱又伦 | 亚洲狠狠色丁香婷婷综合 | 日本大香伊一区二区三区 |