日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

c/c++

c++11:智能指针

發布時間:2023/11/29 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++11:智能指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在程序運行的過程中,經常出現段錯誤、內存持續增大等,是C++顯式內存管理存在的問題,主要歸納為以下幾點:

  • 野指針:一些內存單元已經釋放,但之前指向它的指針還在使用。
  • 重復釋放:程序試圖釋放已經被釋放過的內存單元。
  • 內存泄漏:沒有釋放不再使用的內存單元。
  • 緩沖區溢出:數組越界。
  • 不配對的new[]/delete
  • 針對以上1~3的問題,C++標準中提供了智能指針來解決。
    智能指針是基于RAII(Resource Acquisition Is Initialization)機制實現的類(模板),具有指針的行為(重載了operator*與operator->操作符)。當對象創建的時候,進行初始化;離開其作用域后,通過自動調用析構函數釋放資源。

    C++98中,智能指針通過一個模板類型"auto_ptr"來實現,auto_ptr對象通過初始化指向由new創建的動態內存,當auto_ptr對象生命周期結
    束時,其析構函數會將auto_ptr對象擁有的動態內存自動釋放。即使發生異常,通過異常的棧展開過程也能將動態內存釋放。但其有一些缺點:

    • 賦值和拷貝操作的目標對象會先釋放其原來所擁有的對象
      auto_ptr<int> ap1(new int(100)); ????auto_ptr<int> ap2(ap1); ????// ap1 == nullptr;

      auto_ptr 不能用在stl容器中,因為stl容器要求存儲的類型必須為值語義類型。即兩個對象在拷貝或賦值之后相等(ap1 == ap2)

    • auto_ptr 析構的時候調用的是delete,所以不能用auto_ptr管理數組指針
      ~auto_ptr() { delete _M_ptr; }

    因此,在C++11標準中,改用unique_ptr、shared_ptr及weak_ptr等智能指針來對動態內存進行管理。auto_ptr為了兼容以前的代碼被遺留下來,不建議使用。

    頭文件

    <memory>

    命名空間為

    ?std

    unique_ptr

    概念:
    • unique_ptr“唯一”擁有其所指對象,同一時刻只能有一個unique_ptr指向給定對象(通過禁止拷貝語義、只有移動語義來實現std::move())。* unique_ptr“唯一”擁有其所指對象,同一時刻只能有一個unique_ptr指向給定對象(通過禁止拷貝語義、只有移動語義來實現std::move())。
    • unique_ptr指針本身的生命周期:從unique_ptr指針創建時開始,直到離開作用域。離開作用域時,若其指向對象,則將其所指對象銷毀(默認使用delete操作符,用戶可指定其他操作)。
    • unique_ptr指針與其所指對象的關系:在智能指針生命周期內,可以改變智能指針所指對象,如創建智能指針時通過構造函數指定、通過reset方法重新指定、通過release方法釋放所有權、通過移動語義轉移所有權。
    基本用法:
    #include <iostream> #include <memory> #include <vector> using namespace std; struct Foo { ????Foo() {} ????~Foo() {} ????void Print() { cout << "Foo" << endl; } }; int main(void) { ????Foo* p1 = new Foo(); ????unique_ptr<Foo> up1;?????? // up1==nullptr //? up1 = p1;????????????????? // 編譯錯誤,不支持這樣賦值 ????up1.reset(p1);???????????? // 替換管理對象,并釋放之前管理的對象 ????p1 = nullptr; //? unique_ptr<Foo> up2(up1);? // 編譯錯誤,不支持這樣構造 ????unique_ptr<Foo> up2(std::move(up1)); // up1所有權轉移到up2。up1==nullptr ????up1.swap(up2);???????????? // up2與up1管理對象的指針交換。 up2==nullptr ????if (up1) {???????????????? // up1 != nullptr ????????up1->Print();????????? // unique_ptr重載了-> ????????(*up1).Print();??????? // unique_ptr重載了* ????} //? up2->Print();????????????? // 錯誤 up2 == nullptr, 必須先判斷再調用 ????p1 = up1.get();??????????? // get() 返回所管理對象的指針, up1繼續持有其管理權 ????p1 = up1.release();??????? // release() 返回管理對象的指針,并釋放管理權,up1==nullptr ????delete p1; ????unique_ptr<Foo> up3(new Foo()); ????up3.reset();??????????????? // 顯示釋放釋放管理對象的內存,也可以這樣做:up = nullptr; ????vector<unique_ptr<Foo>> v; ????unique_ptr<Foo> up4(new Foo()); //? v.push_back(up4);??????????? // 編譯錯誤,不支持這樣拷貝 ????v.push_back(std::move(up4);? // 只能up4放棄對其所有權,通過std::move()將所有權轉移到容器中 ????return 0; }
    應用場景:
    • 只要unique_ptr智能指針創建成功,其析構都會被調用,確保動態資源的釋放------避免內存泄漏。
    • 把unique_ptr作為引用參數,傳遞給其他例程,不用擔心該指針在例程中被copy一份,或不小心釋放掉。

    shared_ptr

    概念:
    • shared_ptr 基于“引用計數”模型實現, 多個shared_ptr對象可以擁有同一個動態對象,并維護了一個共享的引用計數。當最后一個指向該對象的shared_ptr被銷毀或者reset時,會自動釋放其所指的對象,回收動態資源。
    • 銷毀該對象時,使用默認的delete/delete[]表達式,或者是在構造 shared_ptr 時傳入的自定義刪除器(deleter),以實現個性化的資源釋放動作。
    基本用法:
    #include <iostream> #include <memory> #include <vector> #include <assert.h> using namespace std; struct Foo { ????int v; }; int main(void) { ????shared_ptr<Foo> sp1(new Foo{10}); ????cout << sp1.unique() << endl;??? // 1 當前shared_ptr唯一擁有Foo管理權時,返回true,否則返回false ????cout << sp1.use_count() << endl; // 1 返回當前對象的引用計數 ????shared_ptr<Foo> sp2(sp1); ????assert(sp1->v == sp2->v);??????? // sp1與sp2共同擁有Foo對象 ????cout << sp2.unique() << endl;??? // 0 false ????cout << sp2.use_count() << endl; // 2 ????sp1.reset();???????????????????? // 釋放對Foo的管理權,同時引用計數減1 ????assert(sp1 == nullptr);????????? // sp1 為空 ????cout << sp1.unique() << endl;??? // 0 不會拋出異常 ????cout << sp1.use_count() << endl; // 0 不會拋出異常 ????cout << sp1.get() << endl;?????? // 0 不會跑出異常 //? cout << sp1->v << endl;????????? // 執行錯誤 sp1為nullptr時,operator* 和 operator-> 都會導致未定義行為 ????cout << sp2.unique() << endl;??? // 1 true ????sp1.swap(sp2);?????????????????? // sp1與sp2交換管理權,及引用計數 ????assert(sp2 == nullptr); ????cout << (*sp1).v << endl;??????? // 10 同sp1->v相同 ????vector<shared_ptr<Foo>> vec; ????vec.push_back(sp1); ????cout << sp1.use_count() << endl; // 2 ????return 0; // vector先析構,里面存儲的對象引用計數減1,但不為0,不釋放對象 // sp1后析構,引用計數減1,變為0,釋放所指對象的內存資源 }
    主要方法:
    T& operator*() const; T* operator->() const; T* get() const; bool unique() const; long use_count() const; void swap(shared_ptr<T>& b);
    應用場景:

    ? ? 1. 在一個map(unordered_map)中,多key索引一個value,使用shared_ptr。

    #include <iostream> #include <memory> #include <map> #include <cstdint> using namespace std; Class SessionNode { public: ????SessionNode() {} ????virtual ~SessionNode() {} }; typedef std::shared_ptr<SessionNode> SessionNodeSP; int main(void) { ????map<uint64_t, SessionNodeSP> map; ????uint64_t imsi = 4600000; ????uint32_t tmsi = 0x12345; ????{ ????????SessionNodeSP sp(new SessionNode()); ????????map[imsi] = sp; ????????map[tmsi] = sp; ????????cout << sp.use_count() << endl;? // 3 ????} // sp 銷毀,引用計數減1,變為2 ????map.erase(tmsi);? // use_count()為1 ????map.erase(imsi);? // use_count()為0,釋放被管理對象的內存 ????return 0; }

    ? ? 2. 多個map索引同一value

    #include <iostream> #include <memory> #include <map> #include <cstdint> using namespace std; struct Node { ????uint64_t imsi; ????uint32_t tmsi; }; typedef std::shared_ptr<Node> NodeSP; class Session { public: ????Session() {} ????~Session() {} ????NodeSP GetNode(uint64_t imsi, uint32_t tmsi) { ????????NodeSP sp(new Node{imsi, tmsi}); ????????imsi_map_[imsi] = sp; ????????tmsi_map_[tmsi] = sp; ????????return sp; ????} ????void EraseNode(NodeSP& sp) { ????????if (sp == nullptr) ????????????return; ????????imsi_map_.erase(sp->imsi); ????????imsi_map_.erase(sp->tmsi); ????} private: ????map<uint64_t, NodeSP> imsi_map_; ????map<uint32_t, NodeSP> tmsi_map_; }; int main(void) { ????Session ses; ????uint64_t imsi = 4600000; ????uint32_t tmsi = 0x12345; ????NodeSP sp; ????sp = ses.GetNode(imsi, tmsi); ????cout << sp.use_count() << endl; // 3 ????// ... do something with sp ????ses.EraseNode(sp); ????cout << sp.use_count() << endl; // 1 ????sp.reset(); // 主動釋放被管理對象內存 ????return 0; }

    ? ? 3. 防止裸指針被刪除

    #include <iostream> #include <memory> class Cdr? { public: ????Cdr() {} protected: ????virtual ~Cdr() {} }; class SignalCdr : public Cdr { public: ????SignalCdr() {} ????virtual ~SignalCdr() {} }; typedef std::shared_ptr<Cdr> CdrSP; CdrSP CreateSignalCdr() { ????CdrSP sp(new SignalCdr()); ????return sp; }; int main(void) { ????CdrSP sp_cdr = CreateSignalCdr(); ????SignalCdr* p_signal_cdr = reinterpret_cast<SignalCdr*>(sp_cdr.get()); ????// ... do something //? delete p_signal_cdr; // 執行錯誤,~Cdr()為protected ????return 0; }

    ? ? 4. 定制刪除器。

    #include <iostream> #include <memory> #include <errno.h> #include <stdio.h> #include <string.h> using namespace std; class FileCloser { public: ????void operator()(FILE* p) { ????????// ... do something ????????cout << "close file" << endl; ????????fclose(p); ????} }; int main(void) { ????try { ????????FILE* p_file = fopen("./test.cpp", "r"); ????????if (p_file == nullptr) ????????????throw errno; ????????shared_ptr<FILE> sp_file(p_file, FileCloser()); //????? shared_ptr<FILE> sp_file(p_file, &fclose);? //如果只需要調用一個單參數的函數,可以直接這么寫 ????????// ... do something ????} catch (int& err) { ????????cout << strerror(err) << endl; ????} ????return 0; }

    ? ? 5. 在引起循環引用的時候使用weak_ptr。

    #include <iostream> #include <memory> using namespace std; struct Husband; struct Wife; typedef std::shared_ptr<Husband> HusbandSP; typedef std::shared_ptr<Wife>??? WifeSP; struct Wife { ????~Wife() { cout<< "wife distroy" << endl; } ????HusbandSP sp_hb; }; struct Husband { ????~Husband() { cout<< "husband distroy" << endl; } ????WifeSP sp_wf; }; int main(void) { ????{ ????????HusbandSP husband(new Husband()); ????????WifeSP??? wife(new Wife()); ????????husband->sp_wf = wife; ????????wife->sp_hb = husband; ????} // husband 和 wife,相互引用,離開作用域時引用計數都為1,造成內存泄露 ????return 0; }

    weak_ptr

    概念:
    • weak_ptr是為了配合shared_ptr而引入的一種智能指針,它只能夠通過shared_ptr或者weak_ptr來構造。
    • weak_ptr是作為shared_ptr的”觀察者“,并不修改shared_ptr所管理對象的引用計數,當shared_ptr銷毀時,weak_ptr會被設置為空,所以使用weak_ptr比底層指針的好處在于能夠知道所指對象是否有效
    • weak_ptr不具有普通指針的行為,因為沒有重載operator*和->。所以當weak_ptr觀察的對象存在,并且需要修改其內容時,需要提升為shared_ptr來操作。
    基本用法:
    #include <iostream> #include <memory> using namespace std; struct Cdr{ ????int v; }; typedef std::shared_ptr<Cdr> CdrSP; typedef std::weak_ptr<Cdr>?? CdrWP; void UpdateCdr(CdrWP wp) { ????if (wp.expired() == false) {?? // 檢查被管理對象是否被刪除,true 刪除,false 沒被刪除;比use_count()==1要快 ????????CdrSP sp = wp.lock();????? // 提升為強引用 //????? CdrSP sp(wp);????????????? // 另一種wp提升為強引用方法 ????????if (sp != nullptr) {?????? // 若提升失敗,shared_ptr 為 nullptr,此例子不會失敗 ????????????sp->v *= 2; ????????????cout << sp.use_count() << endl; // 此時引用計數為2 ????????} ????} // sp刪除,引用計數減1 ????wp.reset(); // 顯示釋放所有權,或者等離開作用域會自動釋放 } int main(void) { ????CdrSP sp(new Cdr{10}); ????UpdateCdr(sp);? // 對sp進行操作 ????cout << sp->v << endl;? // 20 ????return 0; }
    主要方法:
    long use_count() const; bool expired() const; std::shared_ptr<T> lock() const;
    應用場景:
  • 如基本用法,通過weak_ptr觀察shared_ptr管理的對象,如果有效,提升為shared_ptr進行操作。
  • map中存儲弱引用
    #include <iostream> #include <memory> #include <map> using namespace std; struct Cdr { ????int v; }; typedef std::shared_ptr<Cdr> CdrSP; typedef std::weak_ptr<Cdr>?? CdrWP; class Cache { public: ????Cache() {} ????~Cache() {} ????void UpdateIndex(CdrSP& sp) { ????????if (sp != nullptr && sp->v > 0) ????????????cdr_map_[sp->v] = sp; ????} private: ????map<int, CdrWP> cdr_map_; }; int main(void) { ????Cache cache; ????CdrSP sp_cdr(new Cdr{1}); ????cache.UpdateIndex(sp_cdr); ????cout << sp_cdr.use_count() << endl; // 1 ????return 0; // sp_cdr銷毀,引用計數為1,釋放管理對象內存 // cache銷毀,因為map中存儲的為weak_ptr,weap_ptr為空,所以不會產生二次釋放 }
  • bad_weak_ptr異常捕獲

    當shared_ptr通過weak_ptr參數構造,而weak_ptr指向一個已經被刪除的對象時,會拋出std::bad_weak_ptr異常。

    #include <iostream> #include <memory> using namespace std; int main() { ????shared_ptr<int> sp1(new int(1)); ????weak_ptr<int> wp(sp1); ????p1.reset(); ????try { ????????shared_ptr<int> sp2(wp); ????} catch (const std::bad_weak_ptr& e) { ????????cout << e.what() << endl;??? // "std::bad_weak_ptr" ????} }

    從this創建shared_ptr

    有時候,需要從this獲得 shared_ptr ,即是說,你希望你的類被shared_ptr所管理,你需要把"自身"轉換為shared_ptr的方法。

    #include <iostream> #include <memory> using namespace std; class Foo; typedef std::shared_ptr<Foo> FooSP; void DoSomething(const FooSP& sp) { ????cout << sp.use_count() << endl; // 2 } class Foo : public std::enable_shared_from_this<Foo> { public: ????Foo() {} ????~Foo() {} ????void Do() { ????????DoSomething(shared_from_this()); ????} }; int main(void) { ????FooSP sp(new Foo()); ????cout << sp.use_count() << endl; // 1 ????sp->Do(); ????return 0; }

    總結:

    • unique_ptr/shared_ptr中,get()把底層指針暴露出來,為的是兼容老程序,一般不提倡使用,因為很難確保別的例程會對這個指針做什么,比如說delete/delete[]。
    • 作為shared_ptr和weak_pt作為參數傳遞時,使用引用傳遞以減小開銷。
    • weak_ptr 沒有重載operator==,所以不能比較。shared_ptr可以比較,比較的是里面底層指針。
    • auto_ptr、unique_ptr、shared_ptr,不能這樣用
      { ????int* p = new int(100); ????auto_ptr<int> ap1(p); ????auto_ptr<int> ap2(p); }

      當離開作用域,ap1和ap2都試圖刪除p,會造成double free。

    • 使用智能指針雖然不需要手動處理引用計數和調用delete來釋放資源。但要清楚什么時候資源會被釋放。
      例如:用容器來存儲shared_ptr,并且從容器中刪除的時候釋放資源,那么其他例程在使用shared_ptr時只是更新其資源;
      如果從容器中刪除shared_ptr時不釋放資源,那么應該被另外一個shared_ptr所共享;這個時候容器中存儲weak_ptr更合適。

    引用:

    英文網址:
    http://en.cppreference.com/w/cpp/memory

    中文網址(google 機器翻譯):
    http://zh.cppreference.com/w/cpp/memory

    標簽:

    轉載于:https://www.cnblogs.com/457220157-FTD/p/4129058.html

    總結

    以上是生活随笔為你收集整理的c++11:智能指针的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    日韩精品久久中文字幕 | 91麻豆免费版| 国产成人区 | 国产网红在线观看 | 国产午夜剧场 | 久久99国产综合精品 | 51久久成人国产精品麻豆 | 一级c片 | 国产一级黄色av | 日韩一区二区三区在线看 | 久久久久久久久久电影 | 96亚洲精品久久 | 国产精品初高中精品久久 | 日韩午夜av | 黄色影院在线播放 | 97爱 | 国产成人一区二区三区在线观看 | 精品一区二区免费 | 500部大龄熟乱视频使用方法 | 日韩乱色精品一区二区 | 久99久精品视频免费观看 | 欧美日韩久 | 中文字幕乱视频 | 91九色性视频 | 久久99精品一区二区三区三区 | 免费三级网 | 免费观看全黄做爰大片国产 | 99精品视频在线观看视频 | 日韩aa视频 | av一级片在线观看 | 久久伊人爱 | 天天干天天拍天天操 | 99久久精品免费一区 | 丁香导航| 四虎最新域名 | 色爽网站 | 成人av地址 | 国产手机在线观看 | 国产精品videoxxxx | 射久久久 | 天天干天天操天天射 | 国产永久免费高清在线观看视频 | 操操操操网 | www.com.日本一级 | 黄a在线看 | 国内精品视频一区二区三区八戒 | 久久精品看 | 婷婷色网 | av成人在线网站 | 天天操天天摸天天干 | 国产精品一区二区在线免费观看 | 欧美成人91| 国产色综合天天综合网 | 午夜精品久久久久久久久久 | 97人人模人人爽人人喊网 | 久久精品久久精品久久精品 | 激情校园亚洲 | 国产视频亚洲 | 欧美色操 | 免费精品久久久 | 久草爱 | 精品电影一区二区 | 97超碰资源总站 | 久久久精品福利视频 | 九九久久国产 | 国产免费久久久久 | 日韩女同一区二区三区在线观看 | 西西444www大胆无视频 | 国产日韩av在线 | 亚洲成人av影片 | 六月丁香婷婷在线 | 日本精品视频在线观看 | 天堂视频中文在线 | 久久精品视频18 | 久久都是精品 | 香蕉视频导航 | 亚洲有 在线 | 九色91在线| 黄色成年网站 | 久久久96 | 成人免费毛片aaaaaa片 | 公开超碰在线 | 久草观看 | 四虎影视久久久 | 在线中文日韩 | 中文字幕av全部资源www中文字幕在线观看 | 在线成人欧美 | 国产精品一区二区三区四区在线观看 | 欧美人操人 | 久久午夜鲁丝片 | 国产亚洲精品女人久久久久久 | 高清久久久 | 国产精品久久久久久妇 | 国产综合精品一区二区三区 | 国产麻豆精品95视频 | 国产精品久久艹 | 精品国产免费久久 | 欧美另类xxx | 久热爱| 国产亚洲精品久久网站 | 99精品免费久久久久久日本 | 欧美三级高清 | 黄色精品国产 | 久久精品国产精品 | 精品一区二区在线免费观看 | 九九在线国产视频 | 久久男人中文字幕资源站 | 国产在线观 | 99久久这里只有精品 | 精品久久一区二区 | 97精品国产97久久久久久春色 | 99c视频高清免费观看 | 一区在线电影 | 国产精品999久久久 久产久精国产品 | 成人免费视频播放 | 久久日本视频 | 欧美日韩一区二区三区免费视频 | 黄色成人影视 | 免费又黄又爽的视频 | 精品久久影院 | 国产一级片在线播放 | 国产精品a久久 | 国产精品成人av在线 | 六月色丁香 | 国产精品美女久久久久aⅴ 干干夜夜 | 中文字幕在线免费播放 | 久99精品 | 欧美在线你懂的 | 久久久久免费精品视频 | 亚洲视屏在线播放 | 国产精品欧美 | 在线观看视频在线 | 欧美福利视频一区 | 99免费在线视频 | 美女久久久久久久 | 三级a毛片 | 婷婷亚洲综合五月天小说 | 在线a视频免费观看 | 久久久久亚洲精品男人的天堂 | 丁香婷婷久久久综合精品国产 | 激情伊人五月天久久综合 | 色狠狠狠| 五月婷久久| 91丨九色丨蝌蚪丨老版 | 久久午夜电影院 | 一级a性色生活片久久毛片波多野 | 中文字幕日韩一区二区三区不卡 | 成年人免费看片网站 | 欧美日韩在线精品一区二区 | 精品婷婷 | 国产午夜精品理论片在线 | 麻豆精品视频 | 久久人人爽人人 | 日日日天天天 | 亚洲天堂精品视频 | 精品视频区 | 亚洲精品男女 | 色婷婷久久久 | 麻豆一级视频 | 天天碰天天操 | 欧美日韩中文视频 | 婷婷草 | 色干干 | 日韩在线电影 | 99精品视频免费在线观看 | 国产精品一区二区三区在线免费观看 | 午夜精品久久一牛影视 | 久久久www成人免费精品张筱雨 | 成年人黄色免费网站 | 婷婷综合影院 | 国产在线观看91 | 久久99精品久久久久久清纯直播 | 亚洲夜夜综合 | 一本一道久久a久久精品 | 国产精品成人久久久久久久 | 黄影院 | 国产一级黄 | 久草五月| 五月天婷婷狠狠 | 欧美激情视频三区 | 久草久热| 欧美动漫一区二区三区 | 国产精品18久久久久久久久久久久 | 超碰97公开 | 国产你懂的在线 | 日日操网 | 国产91对白在线播 | 国产视频久久 | 久久99国产精品免费 | 国产精品成人国产乱一区 | 99这里只有久久精品视频 | 免费a视频在线观看 | 久久99电影 | 久久亚洲国产精品 | 成人一级在线 | 黄色特级片 | 欧美色插 | 狠狠色丁香婷婷 | 夜夜躁日日躁 | 丁香婷婷久久 | 福利视频网址 | 久久人人97超碰国产公开结果 | 丁香一区二区 | 美州a亚洲一视本频v色道 | 国产成人精品一区二区三区福利 | 亚洲精品国产综合99久久夜夜嗨 | 国产精品久久伊人 | 激情久久综合网 | 人人干天天射 | 日本久久视频 | 国内精品久久久久久久影视麻豆 | 一区在线电影 | 欧美亚洲精品在线观看 | 亚洲一级理论片 | 视频成人| 黄色大片日本免费大片 | 99精品视频在线 | 人人操日日干 | 中文字幕高清视频 | 97精品国产 | 开心激情久久 | 亚洲成人蜜桃 | 91三级在线观看 | 在线你懂 | 四虎免费av | 激情电影影院 | 91爱爱中文字幕 | 亚洲第一区在线播放 | 婷婷五月情 | 91亚洲在线观看 | 狠狠干激情 | 九九国产视频 | 99精品久久久久久久 | 亚洲国产丝袜在线观看 | 中文字幕.av.在线 | 最新动作电影 | 在线观看久久 | 天天爽天天爽夜夜爽 | 亚洲va欧美va国产va黑人 | 91看片看淫黄大片 | 国内精品视频在线播放 | 99久久久久久久久 | 东方av在 | 国产精品1024| 国产色婷婷精品综合在线手机播放 | 五月激情视频 | 亚洲在线看 | 人人人爽 | 三级av片| 国产一区不卡在线 | 国产精品porn | 亚洲精品午夜久久久 | av电影免费在线播放 | 天天干天天摸天天操 | 天天躁天天狠天天透 | 亚洲综合色av | 久久tv| 美女福利视频一区二区 | 在线日韩| 一区二区视频欧美 | 免费一级片观看 | 午夜少妇 | 色在线网| 国产剧情一区二区在线观看 | 天天操天天操天天操天天 | 亚洲精品www | 国内精品视频在线 | 日韩av一区二区在线 | 色综合久久88色综合天天6 | 日本中文字幕系列 | 91成人在线观看喷潮 | www国产亚洲精品久久网站 | 精品国产一区二区三区四区在线观看 | 色诱亚洲精品久久久久久 | 超碰在线97观看 | 在线观看小视频 | 国产夫妻性生活自拍 | 国产美女精品视频 | 日韩欧美在线视频一区二区 | 日韩电影在线观看中文字幕 | 久久国产麻豆 | 麻豆av一区二区三区在线观看 | 国产精品久久久久一区二区三区共 | av网址aaa | 狠色狠色综合久久 | www视频在线观看 | 天堂av在线免费 | 日韩在线观看第一页 | 国产高清久久久 | 成人精品一区二区三区电影免费 | 天天av资源 | 97成人资源站 | 九九影视理伦片 | 国产成人精品在线观看 | 黄视频网站大全 | 免费在线观看日韩欧美 | 人人草人人做 | 91久久黄色 | 97电影网手机版 | 亚洲影院色 | 久久av免费观看 | av电影久久 | 国产v在线观看 | 国产99免费 | 国产精品久久久久久久久婷婷 | 久草在线一免费新视频 | 天天爱天天操天天干 | www好男人 | 国产精品久久久久9999吃药 | 欧美热久久 | 天天搞天天干 | 国产精品麻豆一区二区三区 | 婷婷激情在线观看 | 日韩av在线影视 | 在线观看av不卡 | 国产视频第二页 | 激情欧美xxxx| 911精品美国片911久久久 | 日夜夜精品视频 | av免费在线网站 | 欧美精品资源 | 911国产 | 一区二区高清在线 | 国产精品毛片久久久久久 | 91视频啪 | 久久久免费看视频 | 亚洲精品日韩一区二区电影 | 91亚洲精品久久久蜜桃网站 | 在线成人一区二区 | 天天操天天是 | 九九有精品 | 日韩国产高清在线 | 国产五月色婷婷六月丁香视频 | 欧美日韩网站 | 三级黄色在线 | 日韩在线视频免费播放 | 久影院| 午夜久久精品 | 免费av的网站 | 成人午夜黄色影院 | 欧美日韩免费观看一区二区三区 | 欧美精品xx | 国产亚洲精品成人av久久ww | 久久午夜色播影院免费高清 | 成人黄色毛片视频 | 国产日韩欧美在线影视 | 精品福利视频在线观看 | 亚洲激情av| 在线播放国产一区二区三区 | 天天操天天射天天操 | 摸阴视频| 亚洲天堂精品视频 | 久久特级毛片 | 99热九九这里只有精品10 | 成人午夜av电影 | 天天综合色 | 国产精品自产拍在线观看桃花 | 久久高清毛片 | 国产精品永久久久久久久www | 久久久麻豆精品一区二区 | 成人av观看 | 日本不卡一区二区 | 亚洲成人av电影 | 手机看片中文字幕 | 亚洲精品视频免费看 | 亚洲女同videos | 狠狠色丁香婷婷综合久久片 | 91伊人久久大香线蕉蜜芽人口 | 国产资源免费 | 人人超碰人人 | 人人干免费 | 色婷婷导航 | 亚洲午夜av | 最近最新最好看中文视频 | 天天插天天爱 | 国产精品12 | 在线 国产 日韩 | 韩日成人av | 超级碰99| 综合久久久久久 | 欧美日韩国产欧美 | 五月婷婷久久综合 | 808电影免费观看三年 | 99在线免费视频 | 人人玩人人添人人 | 外国av网 | 亚洲国产人午在线一二区 | 久久国产精品影片 | 美女网站在线观看 | 麻豆 91 在线 | 999视频在线观看 | 久久亚洲私人国产精品va | 日韩在线播放视频 | 国产91av视频在线观看 | avsex| 日韩免费高清在线 | 婷婷六月综合网 | 亚洲一区精品人人爽人人躁 | 天堂在线视频免费观看 | 国产小视频精品 | 天堂va欧美va亚洲va老司机 | 亚洲女欲精品久久久久久久18 | 国产成人精品综合久久久 | 国产精品video | 在线观看中文字幕2021 | 国产在线色站 | 天天干天天做天天操 | 日本动漫做毛片一区二区 | 91精彩视频| 国产精品亚洲精品 | 婷婷综合| 一级a毛片高清视频 | 国产一区二区三区免费观看视频 | 国产999精品视频 | 欧美日韩亚洲第一页 | 毛片视频网址 | 欧美日韩国产一二三区 | 午夜男人影院 | 日韩免费在线网站 | 亚洲va欧美va人人爽 | av电影免费在线播放 | 激情五月av | 99爱视频在线观看 | 五月丁婷婷 | 日韩在线观看不卡 | 黄色一级大片在线观看 | 在线观看中文av | 中文字幕一区二区三区在线观看 | 婷婷色六月天 | 日韩欧美一级二级 | 久草在线久草在线2 | 五月天网页| 亚洲国产中文字幕在线视频综合 | 国产午夜精品免费一区二区三区视频 | 日韩av成人在线观看 | 激情影院在线观看 | 狠狠色狠狠色综合日日92 | 黄色网址国产 | 超碰成人免费电影 | ww亚洲ww亚在线观看 | 成人在线免费观看网站 | 中文字幕国产在线 | 国产拍揄自揄精品视频麻豆 | 综合久久精品 | 国产亚洲永久域名 | 在线免费中文字幕 | 久久999久久 | 亚洲综合色站 | 色www精品视频在线观看 | 国产精品麻 | 中文字幕xxxx | 久久伊99综合婷婷久久伊 | 97超级碰碰碰视频在线观看 | 亚洲精品理论片 | 成人在线免费视频观看 | 久草在线最新 | 成人免费视频在线观看 | 中文字幕专区高清在线观看 | 国产国语在线 | 欧美日韩性生活 | 99日韩精品 | 成人精品久久 | 成人资源在线观看 | 亚洲精品自拍 | 色婷婷婷| 午夜精品一区二区三区免费 | 久草精品在线播放 | 国产一区二区三区久久久 | 五月天电影免费在线观看一区 | 久久久久女教师免费一区 | 国产高清专区 | 五月天激情视频在线观看 | 久久久精品国产一区二区 | 亚洲综合网站在线观看 | 国产女人免费看a级丨片 | 久久久久久久久久久影视 | 三级黄色欧美 | 在线观看视频黄色 | 偷拍久久久 | 狠狠色丁香久久婷婷综合五月 | 一级做a视频 | av中文字幕日韩 | 日韩欧美一区二区三区视频 | 精品一区 在线 | 激情av网址 | 操久久免费视频 | 欧美一级特黄高清视频 | 四虎小视频| 免费看一级黄色大全 | 福利视频 | 麻花豆传媒一二三产区 | 91成人精品 | 国产成人精品综合久久久 | 国产视频久久 | 日本黄色一级电影 | 日韩高清在线一区二区三区 | 日韩三级成人 | 在线观看一区二区精品 | 91丨九色丨国产在线 | 在线视频观看成人 | 欧美日韩三级在线观看 | 啪啪av在线 | 五月婷婷综合色拍 | av在线播放亚洲 | 欧美成人h版电影 | 日韩天堂网 | 九九九热精品免费视频观看网站 | 免费看三级黄色片 | 免费亚洲成人 | 日韩视频精品在线 | 国产 一区二区三区 在线 | 网站在线观看日韩 | 天天爽天天爽夜夜爽 | 久久久久久久久爱 | 亚洲成人家庭影院 | 中文字幕日本在线 | 日韩免费视频在线观看 | 国产成人99久久亚洲综合精品 | 天堂在线一区二区 | 久久8精品 | 久久国产日韩 | 国产精品麻豆99久久久久久 | 日本婷婷色 | 国产资源在线播放 | 在线免费观看成人 | 国产成人三级 | 日韩大片在线播放 | 日韩欧美有码在线 | 欧美日韩视频网站 | 日本成人黄色片 | 国产成人精品福利 | 国产免费美女 | 久久综合婷婷 | 国产福利一区二区三区视频 | 国产精品一区二区免费在线观看 | 中文字幕在线免费播放 | 99精品欧美一区二区蜜桃免费 | 亚洲免费成人av电影 | 五月天婷婷免费视频 | 视频 天天草 | 色婷婷狠狠18 | av免费观看高清 | 黄色视屏在线免费观看 | av免费看网站 | 园产精品久久久久久久7电影 | 日韩精品不卡在线观看 | 亚洲综合色av | 最新中文字幕在线观看视频 | 亚洲成人xxx | 午夜av不卡 | 天躁狠狠躁 | 亚洲成成品网站 | 香蕉在线视频播放网站 | 欧美黄网站 | 六月天色婷婷 | 97精品国产91久久久久久久 | 午夜三级影院 | 免费男女网站 | 亚洲国产精品va在线 | 免费在线a| 色在线网 | 人人要人人澡人人爽人人dvd | 国产黄在线免费观看 | 综合五月| 中国美女一级看片 | 久久99亚洲网美利坚合众国 | 久久精品电影院 | 日本91在线| 日韩成人免费在线 | 伊人伊成久久人综合网站 | 中文字幕不卡在线88 | 国产在线精品区 | 亚洲精品99久久久久中文字幕 | 国产一二三四在线观看视频 | 一级黄色免费 | 久草视频精品 | 99超碰在线播放 | 天天艹天天操 | 天天操天天操天天操天天操天天操 | 免费亚洲黄色 | 久草在线费播放视频 | 欧美精品xx | 国产精品一区二区三区在线 | 亚洲天堂网站视频 | 国产免费一区二区三区最新 | 免费欧美高清视频 | 精品国产免费av | 亚洲精品视频免费看 | 97人人射 | 人人看人人艹 | 国产精品欧美精品 | 欧美精品一区二区在线播放 | 免费观看91 | 久99久久| avwww在线观看| 婷婷久久一区 | 天天操天天干天天摸 | 二区在线播放 | 插久久 | 欧美日韩精品久久久 | 五月天亚洲综合小说网 | 西西大胆免费视频 | 国产馆在线播放 | 色久av | 国产精品亚洲片夜色在线 | 欧美在线视频一区二区 | 日本在线视频网址 | 久久视了| 天天操天天干天天插 | 久久这里只有精品23 | 久久精品久久99精品久久 | 亚洲综合五月天 | 日韩视频一区二区三区在线播放免费观看 | 久久久91精品国产 | 色在线观看网站 | 成人中文字幕在线观看 | 日韩午夜精品福利 | 四虎在线观看视频 | 五月婷婷毛片 | 欧美亚洲一区二区在线 | 西西4444www大胆无视频 | 亚洲免费在线播放视频 | 在线视频18在线视频4k | 国产破处在线视频 | 国产999精品久久久影片官网 | 国产精品99蜜臀久久不卡二区 | 婷婷国产精品 | 国模吧一区 | 制服丝袜欧美 | 久久精美视频 | 97人人人 | 久久综合视频网 | 欧美日韩国产在线精品 | 日韩欧美在线综合网 | 手机在线看a | 亚洲少妇天堂 | av久久久久久 | 黄色免费网 | 一级性视频| 99精品热| 中文字幕中文字幕在线中文字幕三区 | 超碰在线个人 | 狠狠色丁香久久婷婷综合丁香 | 欧美性大战久久久久 | 国内精品久久久久影院男同志 | 久久精品免费电影 | 91精品国产福利在线观看 | 国产视频在线播放 | 国产一级电影网 | 久久蜜臀一区二区三区av | 在线观看的av | 午夜精品久久久久久久99热影院 | 日韩精品极品视频 | 亚洲一区欧美激情 | 亚洲视频1 | 亚洲最新在线 | 中文字幕字幕中文 | www.成人精品 | 日韩av在线高清 | 久久久免费观看完整版 | 久久精品波多野结衣 | 99精品热视频| 日韩欧美网址 | 久久激情五月婷婷 | 操操操综合 | 永久免费av在线播放 | 亚洲精品免费在线观看 | 超碰国产在线 | 国产玖玖在线 | 国产精品一区二区在线 | 国产视频亚洲精品 | www.eeuss影院av撸| 中日韩在线视频 | 国产综合精品久久 | www狠狠操| 欧美极品在线播放 | 国产午夜精品一区二区三区欧美 | 亚州欧美精品 | 久久成人精品视频 | 久久色中文字幕 | 精品视频一区在线观看 | 91毛片视频| 97在线观看免费高清完整版在线观看 | 精品国产诱惑 | 成人在线视频网 | 99精品欧美一区二区三区 | 国产99一区视频免费 | 麻豆视频在线看 | 综合久久影院 | 日韩中文字幕免费 | 日日干影院 | 婷婷久久一区二区三区 | 99久视频| 日本激情中文字幕 | 国产高清视频色在线www | 亚洲一区久久 | 成人毛片久久 | 亚洲视频精品 | a级黄色片视频 | 天天色图 | 国产一区二区三区在线免费观看 | 久久国产精品久久久久 | 天天看天天操 | 亚洲日本成人网 | 色婷婷激情五月 | 99久久电影| 日本福利视频在线 | 中文字幕日韩一区二区三区不卡 | 久久婷婷丁香 | 久久少妇av| 狠狠躁夜夜a产精品视频 | 五月天久久久久 | 久草在线视频中文 | 成人久久久久久久久久 | 久久国产亚洲 | 在线看成人av| 激情www | 久久激情五月婷婷 | 日韩特级黄色片 | 国产69熟| 天天艹天天干天天 | 国产成人在线一区 | 在线亚州 | 亚洲欧美成人在线 | 99久久9| 国产一区在线不卡 | japanesexxx乱女另类 | 日韩区欠美精品av视频 | 亚洲精品91天天久久人人 | 日韩夜夜爽| 亚洲女欲精品久久久久久久18 | 免费观看视频的网站 | 国产 日韩 在线 亚洲 字幕 中文 | 成人禁用看黄a在线 | 在线观看国产成人av片 | 成人黄色在线 | 亚洲精品久久久蜜臀下载官网 | 国产又粗又猛又黄又爽视频 | 青青视频一区 | av免费看在线 | 日本少妇视频 | 日本天天色 | 日本韩国在线不卡 | 天天射夜夜爽 | 精品美女久久久久 | 久久久资源 | 超碰在线免费福利 | 天天干天天做 | 国产黄视频在线观看 | 亚洲欧美视频一区二区三区 | 欧美日韩免费一区二区 | 99在线观看 | 狠狠狠狠狠狠狠干 | 热久久在线视频 | 在线国产99| 久久久综合色 | 久久精品中文字幕 | 亚洲japanese制服美女 | 500部大龄熟乱视频使用方法 | 国产在线播放一区二区三区 | 国产欧美精品一区二区三区 | 久久国产免费视频 | 又黄又爽又无遮挡的视频 | 九九久久婷婷 | 欧美日韩一区二区久久 | 最近中文字幕免费av | 成人观看视频 | 91精品国产一区二区在线观看 | ww亚洲ww亚在线观看 | 69精品 | 国产精品中文字幕av | 操操碰 | 久久久精品一区二区三区 | 日韩中文久久 | 九色91在线| 国产又粗又猛又爽又黄的视频免费 | 一区二区精品在线 | 亚洲天天摸日日摸天天欢 | 婷婷国产一区二区三区 | 色是在线视频 | 91av中文 | 天天爽天天做 | 91精品国产高清自在线观看 | 免费在线观看午夜视频 | 99久久精品免费看国产 | 有码视频在线观看 | 91视频麻豆 | 狠狠的干| 最近免费中文字幕大全高清10 | 亚洲精品久久久蜜桃 | 日韩久久久久久 | 亚洲免费成人av电影 | 欧美日韩亚洲第一页 | 国产精品亚 | 麻豆系列在线观看 | 五月天久久狠狠 | 91av在| 69精品人人人人 | 三级黄色在线 | 亚洲影视资源 | 天天看天天干天天操 | 午夜国产影院 | 午夜私人影院 | 成人小视频在线免费观看 | 亚洲综合欧美日韩狠狠色 | 91精品国产综合久久婷婷香蕉 | 99热9 | 欧美另类色图 | 天天综合精品 | 日韩欧美网址 | 国产精品第一视频 | 伊人激情综合 | 日本99干网 | 日日噜噜噜噜夜夜爽亚洲精品 | www日韩视频 | 精品一区二区三区四区在线 | 成人动漫一区二区三区 | 国产精品日韩高清 | 黄色a三级 | 麻豆免费精品视频 | 91视频91色| 精品视频不卡 | 欧美有色 | 国产精品不卡在线观看 | 久久久精品国产一区二区三区 | 免费av在线网 | 黄色影院在线免费观看 | 日日夜精品 | 婷婷色狠狠| 男女免费av | 特级西西444www高清大视频 | 欧美热久久 | 国产中文字幕网 | 亚洲欧美日韩在线一区二区 | 成人h视频| 婷婷av综合 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 中文字幕在线观看不卡 | 日批视频 | 免费看的黄色小视频 | 久草在线资源免费 | 国产日韩精品视频 | 久久久国产毛片 | 国产精彩视频一区二区 | 91精品啪在线观看国产线免费 | 有码中文字幕在线观看 | 亚洲狠狠婷婷 | 五月天视频网站 | 香蕉蜜桃视频 | 亚洲精品国产视频 | 国产精品 欧美 日韩 | 麻豆小视频在线观看 | 看片的网址 | 久久精品视频2 | 亚洲男男gaygayxxxgv | 欧美日性视频 | 狠狠色狠狠色 | 日韩欧美视频一区二区三区 | 国产福利精品在线观看 | 国产一区二区精品久久 | 黄色一级大片免费看 | 天天干天天操天天拍 | 国产精品久久久久久久久久不蜜月 | 成人av影视观看 | 亚洲欧美日韩国产一区二区三区 | 亚洲欧美日韩在线看 | 久久av高清 | 成人国产综合 | 国产中文 | 国产免费国产 | 亚洲国产精品久久久久 | 欧美精品做受xxx性少妇 | 午夜三级大片 | 亚洲91精品在线观看 | 久久久九色精品国产一区二区三区 | 人人爽人人片 | 国内免费的中文字幕 | 色综合天天射 | 久久精品999 | 欧洲一区二区三区精品 | 日韩精品在线视频 | 久草香蕉在线 | 亚洲精品大片www | 亚洲影视资源 | 天天摸天天干天天操天天射 | 日韩电影一区二区三区 | 超碰免费久久 | 国产在线观看h | 探花视频在线观看免费 | 亚洲婷婷在线视频 | 久操免费视频 | 国产成人精品亚洲日本在线观看 | 日韩在线观看不卡 | 在线国产专区 | 99久久99久久精品 | 日韩在线观看影院 | 97av精品| 日本一区二区不卡高清 | 国内精品免费久久影院 | 亚洲精品视频国产 | 在线免费色视频 | 九九九九九精品 | 亚洲成人频道 | 亚洲欧洲一区二区在线观看 | 国模一区二区三区四区 | 91禁在线观看 | 97在线精品国自产拍中文 | 在线视频电影 | 中文字幕在线观看国产 | 国产视频精品免费播放 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩久久精品一区 | 一区 二区电影免费在线观看 | 国产电影一区二区三区四区 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 亚洲国产精品一区二区久久,亚洲午夜 | 久久久久女人精品毛片 | 精品视频www | 中文字幕在线观看亚洲 | 国产 色 | 久久国产精品免费看 | av超碰在线 | 天天天在线综合网 | 亚洲精品国产第一综合99久久 | 人人狠狠综合久久亚洲 | 蜜臀av夜夜澡人人爽人人 | 极品久久久 | 五月婷婷视频在线 | 免费一级日韩欧美性大片 | 亚洲电影av在线 | 免费在线色电影 | 黄色免费观看视频 | 在线之家免费在线观看电影 | 日本久久久精品视频 | 亚洲精品18日本一区app | 久久免费电影网 | 中文字幕日韩在线播放 | www.狠狠操.com| 黄色91在线观看 | 久久在线看 | 中文字幕av影院 | 91精品天码美女少妇 | 国产成人一二三 | 特级黄录像视频 | 国产精品一区二区三区视频免费 | 在线视频一区观看 | 午夜精品一区二区三区在线观看 | 午夜久久久久 | 在线视频18在线视频4k | 久久这里只有精品1 | 久草在线视频看看 | 色99之美女主播在线视频 | 97精品视频在线播放 | 久久午夜影院 | 国产日韩在线播放 | 亚洲精品国偷拍自产在线观看 | 久久午夜国产 | 国产在线一区二区 | 国产亚洲精品久久久久动 | www.com久久| 午夜久久福利 | av福利在线免费观看 | 在线一区二区三区 | 综合色中文 | 日韩三级视频在线观看 | 久久欧美视频 | 最近日本中文字幕 | 综合色亚洲 | 色视频在线观看免费 | 91精品一区二区三区蜜臀 | 中文字幕日本电影 | 999电影免费在线观看2020 | 精品视频免费 | 精品国产一区二区三区久久久 | 狠狠久久综合 | 91久久国产露脸精品国产闺蜜 | 欧美性网站 | 天天爽人人爽夜夜爽 | 一区二区欧美在线观看 | www夜夜操 | 日韩欧美国产成人 | 91字幕 | 国产精品欧美在线 | 久久黄色小说 | 精品国产伦一区二区三区免费 | 久久只有精品 | 麻豆免费在线视频 | 午夜av影院 | 久久这里只有精品久久 | 久草在线免费在线观看 | 麻豆视频免费入口 | 色综合色综合色综合 | 日韩成年视频 | 免费观看的黄色 | 婷婷色综合色 | 亚洲视频999| 国产视频一区二区在线观看 | 亚洲国产无 |