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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set

發布時間:2024/4/11 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • unordered_map/unordered_set
    • unordered_map/unordered_set與map/set的區別
  • 底層哈希桶的改造
    • 仿函數
      • Key值的獲取方法
      • hash(key)的轉換方法
    • 迭代器
    • 完整代碼
  • unordered_set
    • 文檔介紹
    • 代碼實現
  • unordered_map
    • 文檔介紹
    • 代碼實現

unordered_map/unordered_set

C++ STL : 模擬實現STL中的關聯式容器map和set
這次實現的unordered_map/unordered_set的具體思路和實現的map/set思路差不多,只不過是將底層的數據結構從紅黑樹修改為哈希桶,因為數據結構的修改,其特性也發生了變化。

unordered_map/unordered_set與map/set的區別

相同點:

  • 都是關聯型容器,存儲的是以<key, value>的鍵值對pair
  • 不同點:

  • 底層數據結構。unordered_map/unordered_set的底層容器是哈希桶,map和set底層是紅黑樹
  • 數據是否有序。因為unordered_map/unordered_set的底層容器是哈希桶,數據都是通過映射關系來存儲,這就導致了數據是無序的。而map和set底層是紅黑樹,所以可以通過中序遍歷來獲取有序的數據。
  • 數據訪問時間。unordered_map/unordered_set因為其是通過映射關系來存儲,所以效率為O(1)。map/set為O(logN)

  • 底層哈希桶的改造

    仿函數

    在模板中提供了4個模板參數,分別是key值類型、數據類型、key值的獲取方法、hash(key)的獲取方法

    template<class K, class T, class KeyofT, class Hash>

    Key值的獲取方法

    因為需要考慮到代碼復用的問題,用一個哈希桶來實現K模型的unordered_set和KV模型的unordered_map。并且對于某些自定義類型作為參數,也需要考慮如何從他傳的參數中獲取key值,就需要增加一個模板參數,來讓使用者自行提供從數據中獲取key值的方法。

    下面就拿map和set的舉例子。
    map

    struct MapKeyOfValue {const K& operator()(const std::pair<K, V>& kv){return kv.first;} };

    set

    struct SetKeyOfValue {const K& operator()(const K& key){return key;} };

    hash(key)的轉換方法

    如果key的類型為整型的話還好說,可以直接用來進行哈希函數的映射。但是如果是其他的一些無法進行整型算數運算的類型或者極為龐大的數據,如常用的string或者大數等類型,就需要一種方法來將其轉換為可以計算的整型值,但是對于自定義類型我們并不能知道他的轉換方法,所以就需要提供一個仿函數,讓使用者自行提供轉換的方法。

    因為常用的key一般都是string和int,這里我就給了默認的整型處理方法以及string的特化方法

    template<class K> struct _Hash {const K& operator()(const K& key){return key;} };template<> struct _Hash<std::string> {size_t operator()(const std::string& key){//BKDR字符串哈希函數size_t hash = 0;for (size_t i = 0; i < key.size(); i++){hash *= 131;hash += key[i];}return hash;} };

    迭代器

    迭代器的實現非常容易,值得一提的就是++的重載。

    如果迭代器當前所在的桶中的下一個位置不為空,則直接返回下一個位置。而下一個位置為空,則說明當前桶為空,就需要去到下一個桶中遍歷數據 。但是光光依靠迭代器是無法獲取下一個桶的位置的,所以我就加入了一個哈希桶指針,這樣就可以通過指針獲取桶的哈希函數來計算出當前映射位置,再通過訪問映射位置來找到下一個存有數據的桶,就可以計算出下一個位置。

    template<class K, class T, class KeyOfT, class Hash> struct __HashTableIterator {typedef HashNode<T> Node;typedef HashBucket<K, T, KeyOfT, Hash> HB;typedef __HashTableIterator<K, T, KeyOfT, Hash> Self;__HashTableIterator(Node* node, HB* hb): _node(node), _phb(hb){}T& operator*(){return _node->_data;}T* operator->(){return &_node->_data;}Self& operator++(){//如果下一個節點不為空,直接返回下一個if (_node->_next){_node = _node->_next;}//如果下一個為空,則走到下一個表中else{//通過獲取當前數據的key來判斷下一個數據的位置KeyOfT koft;size_t pos = _phb->HashFunc(koft(_node->_data));++pos;for (; pos < _phb->_table.size(); pos++){Node* cur = _phb->_table[pos];//如果下一個桶的數據不為空,則返回桶的第一個節點if (cur != nullptr){_node = cur;return *this;}}//剩下的桶都沒有數據_node = nullptr;}return *this;}Self operator++(int){Self temp = *this;++this;return temp;}bool operator != (const Self& s){return _node != s._node;}bool operator == (const Self& s){return _node == s._node;}Node* _node;HB* _phb; };

    完整代碼

    #pragma once #include<vector> #include<string>namespace lee {//算法科學家總結出的一個增容質數表,按照這樣增容的效率更高const int PRIMECOUNT = 28;const size_t primeList[PRIMECOUNT] = {53ul, 97ul, 193ul, 389ul, 769ul,1543ul, 3079ul, 6151ul, 12289ul, 24593ul,49157ul, 98317ul, 196613ul, 393241ul, 786433ul,1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul,50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,1610612741ul, 3221225473ul, 4294967291ul};/*因為哈希函數的常用方法如直接定地、除留余數、平方取中等方法需要用的key值為整型,而大部分時候我們的key都是string,或者某些自定義類型,這個時候就可以提供一個仿函數的接口給外部,讓他自己處理如何將key轉換成我們需要的整型*/template<class K>struct _Hash{const K& operator()(const K& key){return key;}};template<>struct _Hash<std::string>{const size_t & operator()(const std::string& key){//BKDR字符串哈希函數size_t hash = 0;for (size_t i = 0; i < key.size(); i++){hash *= 131;hash += key[i];}return hash;}};template<class K>struct SetKeyOfT{const K& operator()(const K& key){return key;}};template<class T>struct HashNode{HashNode(const T& data = T()): _data(data), _next(nullptr){}T _data;HashNode<T>* _next;};template<class K, class T, class KeyofT, class Hash>class HashBucket;template<class K, class T, class KeyOfT, class Hash>struct __HashTableIterator{typedef HashNode<T> Node;typedef HashBucket<K, T, KeyOfT, Hash> HB;typedef __HashTableIterator<K, T, KeyOfT, Hash> Self;__HashTableIterator(Node* node, HB* hb) : _node(node), _phb(hb){}T& operator*(){return _node->_data;}T* operator->(){return &_node->_data;}Self& operator++(){//如果下一個節點不為空,直接返回下一個if (_node->_next){_node = _node->_next;}//如果下一個為空,則走到下一個表中else{//通過獲取當前數據的key來判斷下一個數據的位置KeyOfT koft;size_t pos = _phb->HashFunc(koft(_node->_data));++pos;for (; pos < _phb->_table.size(); pos++){Node* cur = _phb->_table[pos];//如果下一個桶的數據不為空,則返回桶的第一個節點if (cur != nullptr){_node = cur;return *this;}}//剩下的桶都沒有數據_node = nullptr;}return *this;}Self operator++(int){Self temp = *this;++this;return temp;}bool operator != (const Self& s){return _node != s._node;}bool operator == (const Self& s){return _node == s._node;}Node* _node;HB* _phb;};template<class K, class T, class KeyofT = SetKeyOfT<T>, class Hash = _Hash<K>>class HashBucket{public:typedef __HashTableIterator<K, T, KeyofT, Hash> iterator;typedef HashNode<T> Node;friend struct iterator;HashBucket(size_t capacity = 10): _table(capacity), _size(0){}~HashBucket(){Clear();}iterator begin(){//找到第一個節點for (size_t i = 0; i < _table.size(); i++){//如果節點不為空則返回if (_table[i]){return iterator(_table[i], this);}}return iterator(nullptr, this);}//因為在STL中哈希桶的底層是單鏈表的結構,所以不支持--操作,end就直接給一個空即可iterator end(){return iterator(nullptr, this);}size_t getNextPrime(size_t num){size_t i = 0;for (i = 0; i < PRIMECOUNT; i++){//返回比那個數大的下一個質數 if (primeList[i] > num){return primeList[i];}}//如果比所有都大,還是返回最后一個,因為最后一個已經是32位最大容量return primeList[PRIMECOUNT - 1];}size_t HashFunc(const K& key){Hash hash;return hash(key) % _table.size();}std::pair<iterator, bool> Insert(const T& data){KeyofT koft;/*因為哈希桶是開散列的鏈式結構,發生了哈希沖突是直接在對應位置位置進行頭插,而桶的個數是固定的,而插入的數據會不斷增多,隨著數據的增多,就可能會導致某一個桶過重,使得效率過低。所以最理想的情況,就是每個桶都有一個數據。這種情況下,如果往任何一個地方插入,都會產生哈希沖突,所以當數據個數與桶的個數相同時,也就是負載因子為1時就需要進行擴容。*/if (_size == _table.size()){//按照素數表來增容size_t newSize = getNextPrime(_table.size());size_t oldSize = _table.size();std::vector<Node*> newTable(newSize);_table.resize(newSize);//接著將數據重新映射過去for (size_t i = 0; i < oldSize; i++){Node* cur = _table[i];while (cur){//重新計算映射的位置size_t pos = HashFunc(koft(cur->_data));//找到位置后頭插進對應位置Node* next = cur->_next;cur->_next = newTable[pos];newTable[pos] = cur;cur = next;}//原數據置空_table[i] = nullptr;}//直接和新表交換,交換過去的舊表會和函數棧幀一塊銷毀。_table.swap(newTable);}size_t pos = HashFunc(koft(data));Node* cur = _table[pos];//因為哈希桶key值唯一,如果已經在桶中則返回falsewhile (cur){if (koft(cur->_data) == koft(data)){return std::make_pair(iterator(cur, this), false);}else{cur = cur->_next;}}//檢查完成,此時開始插入,這里選擇的是頭插,這樣就可以減少數據遍歷的次數。Node* newNode = new Node(data);newNode->_next = _table[pos];_table[pos] = newNode;++_size;return std::make_pair(iterator(newNode, this), true);}iterator Erase(const K& key){KeyofT koft;size_t pos = HashFunc(key);Node* cur = _table[pos];Node* prev = nullptr;while (cur){if (koft(cur->_data) == key){iterator ret(cur, this);++ret;//如果要刪除的是第一個節點,就讓下一個節點成為新的頭節點,否則直接刪除。if (prev == nullptr){_table[pos] = cur->_next;}else{prev->_next = cur->_next;}delete cur;--_size;return ret;}else{prev = cur;cur = cur->_next;}}return end();}iterator Find(const K& key){KeyofT koft;size_t pos = HashFunc(key);Node* cur = _table[pos];while (cur){if (koft(cur->_data) == key){return iterator(cur, this);}else{cur = cur->_next;}}return end();}void Clear(){//刪除所有節點for (size_t i = 0; i < _table.size(); i++){Node* cur = _table[i];while (cur){Node* next = cur->_next;delete cur;cur = next;}_table[i] = nullptr;}}private:std::vector<Node*> _table;size_t _size;}; };

    unordered_set

    文檔介紹

  • unordered_set是不按特定順序存儲唯一元素的容器,允許根據元素的值快速檢索單個元素。
  • 在unordered_set中,元素的值同時也是其唯一標識它的key。key是不可變的,因此,unordered_set中的元素不能在容器中修改,但是可以插入和刪除它們。
  • 在內部,unordered_set中的元素不按照任何特定的順序排序, 而是根據它們的哈希值組織成bucket,以便直接通過元素的值快速訪問單個元素
  • unordered_set容器通過key訪問單個元素要比set快,但它通常在遍歷元素子集的范圍迭代方面效率 較低。
  • 它的迭代器至少是前向迭代器。
  • 代碼實現

    這里封裝的思路和之前的map和set基本一樣。
    C++ STL : 模擬實現STL中的關聯式容器map和set

    #include"HashBucket.hpp"namespace lee {template<class K, class Hash = lee::_Hash<K>>class unordered_set{public:struct SetKeyOfValue{const K& operator()(const K& key){return key;}};typedef typename HashBucket<K, K, SetKeyOfValue, Hash>::iterator iterator;iterator begin(){return _hb.begin();}iterator end(){return _hb.end();}iterator find(const K& key){return _hb.Find(key);}iterator erase(const K& key){return _hb.Erase(key);}std::pair<iterator, bool> insert(const K& key){return _hb.Insert(key);}private:HashBucket<K, K, SetKeyOfValue, Hash> _hb;};};

    unordered_map

    文檔介紹

  • unordered_map是存儲<key, value>鍵值對的關聯式容器,其允許通過keys快速的索引到與其對應的 value。
  • 在unordered_map中,鍵值通常用于惟一地標識元素,而映射值是一個對象,其內容與此鍵關聯。鍵 和映射值的類型可能不同。
  • 在內部,unordered_map沒有對<kye, value>按照任何特定的順序排序, 為了能在常數范圍內找到key所 對應的value,unordered_map將相同哈希值的鍵值對放在相同的桶中。
  • unordered_map容器通過key訪問單個元素要比map快,但它通常在遍歷元素子集的范圍迭代方面效率 較低。
  • unordered_maps實現了直接訪問操作符(operator[]),它允許使用key作為參數直接訪問value。
  • 它的迭代器至少是前向迭代器。
  • 代碼實現

    #include"HashBucket.hpp"namespace lee {template<class K, class V, class Hash = _Hash<K>>class unordered_map{public:struct MapKeyOfValue{const K& operator()(const std::pair<K, V>& kv){return kv.first;}};typedef typename HashBucket<K, std::pair<K, V>, MapKeyOfValue, Hash>::iterator iterator;iterator begin(){return _hb.begin();}iterator end(){return _hb.end();}iterator find(const K& key){return _hb.Find(key);}iterator erase(const K& key){return _hb.Erase(key);}std::pair<iterator, bool> insert(const std::pair<K, V>& data){return _hb.Insert(data);}V& operator[](const K& key){std::pair<iterator, bool> ret = _hb.Insert(make_pair(key, V()));return ret.first->second;}private:HashBucket<K, std::pair<K, V>, MapKeyOfValue, Hash> _hb;}; };

    總結

    以上是生活随笔為你收集整理的C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    成人 亚洲 欧美 | 久久精品伊人 | 特级a老妇做爰全过程 | 中文字幕视频免费观看 | 久久成人国产精品 | 在线免费黄色毛片 | 91热爆在线观看 | 天堂中文在线播放 | 久久字幕精品一区 | 久久蜜臀一区二区三区av | 91精品国产自产在线观看 | 久久激情视频 | 精品高清视频 | 日批视频在线观看免费 | 激情综合亚洲精品 | 日韩系列 | 色婷婷亚洲精品 | 在线观看mv的中文字幕网站 | 久久精品视 | 在线国产日本 | 中文国产在线观看 | 夜夜躁日日躁 | 超碰97人 | 久久成人国产精品免费软件 | 国产精品视频不卡 | 人人操日日干 | 色婷婷久久久 | 亚洲精品乱码久久久久久 | 成人av一区二区兰花在线播放 | 欧美日本不卡视频 | 国产乱老熟视频网88av | 久久综合给合久久狠狠色 | 久久久久久综合网天天 | 午夜 免费 | 在线视频手机国产 | 精品国产一区二区三区在线观看 | 在线视频 一区二区 | 人人草在线视频 | 国产视频一区二区在线观看 | 久久精品人 | 欧美激情综合五月色丁香 | www.888av| 日韩高清在线一区二区 | 91在线一区二区 | 午夜少妇| 日韩欧美视频一区二区三区 | 在线观看中文字幕av | 夜夜爽88888免费视频4848 | 色夜影院 | 亚洲在线视频播放 | 九九热精品视频在线观看 | 国产视频欧美视频 | 在线日韩视频 | av片在线看 | av先锋中文字幕 | av免费福利 | 中文字幕色站 | 免费看精品久久片 | 亚洲免费在线 | 在线观看网站你懂的 | 国产在线资源 | 久久久久日本精品一区二区三区 | 国产分类视频 | 99国产成+人+综合+亚洲 欧美 | 伊人中文在线 | 在线观看中文字幕第一页 | 久久久午夜精品福利内容 | www四虎影院| av免费在线看网站 | 三级在线视频观看 | 久久伊人精品一区二区三区 | 国产黄色片一级 | 91少妇精拍在线播放 | 在线免费观看黄 | 亚洲小视频在线 | 又黄又色又爽 | 免费国产在线观看 | 99在线观看免费视频精品观看 | 久久精品一区二区三区中文字幕 | 久久毛片高清国产 | 五月天天色 | 91免费看片黄 | 亚洲一区二区三区在线看 | 欧美激情综合色 | 97在线资源 | 久久久久高清毛片一级 | 亚洲精品欧美专区 | 国产一区二区三区四区在线 | 91久久精 | 久久精品91久久久久久再现 | 99这里只有久久精品视频 | 久久一级电影 | 亚洲精品一区中文字幕乱码 | 97视频一区| av 一区 二区 久久 | 久久成人国产精品入口 | 成人黄色小说网 | 国产精品系列在线播放 | 欧美日韩性视频 | 国产一区自拍视频 | 亚洲精品456在线播放 | 一本一本久久a久久 | 欧美精品一区二区免费 | 午夜狠狠操 | 国产精品久久久久久69 | 一区二区丝袜 | 精品久久久久久久久久久久久 | 在线看国产 | 久久久久久久久久久电影 | 不卡的av在线 | 国产精品久一 | 久久国产精品二国产精品中国洋人 | 在线a人片免费观看视频 | 日韩激情视频在线观看 | 精品在线不卡 | 久草在线免费在线观看 | 中文字幕国产在线 | 婷婷综合国产 | 99成人免费视频 | 午夜12点| 欧美性网站 | 国产自产高清不卡 | 亚洲h在线播放在线观看h | 亚洲国产美女精品久久久久∴ | 久草视频在线观 | 午夜视频在线观看欧美 | 日日碰狠狠躁久久躁综合网 | 亚洲欧美国产视频 | 日韩成人免费观看 | 久久天天躁夜夜躁狠狠躁2022 | 欧美日韩在线精品一区二区 | 一本到视频在线观看 | 国产亚洲精品bv在线观看 | 亚洲精品视频网站在线观看 | 亚洲国产小视频在线观看 | 黄色www在线观看 | 91色亚洲| 日本久久久久久久久久 | 日日激情| 精品亚洲一区二区 | 国产女教师精品久久av | 国产99在线免费 | 久久久久久久久久久成人 | 日韩精品免费在线观看视频 | 国产日韩欧美在线免费观看 | 欧美91视频| 亚洲成人午夜av | 日韩黄色免费电影 | 国产又粗又猛又爽又黄的视频免费 | 午夜性福利 | 免费的成人av | 久久伦理影院 | 蜜桃视频日本 | 91高清视频 | 91高清完整版在线观看 | 99九九99九九九视频精品 | 日韩在线观看不卡 | aaa毛片视频 | 国产亚洲精品久久久网站好莱 | 91精品资源 | 国产成人精品亚洲a | 国产精品久久伊人 | www中文在线| 天堂av在线网址 | 欧美激情综合色综合啪啪五月 | 在线观看视频亚洲 | 美女视频黄免费的久久 | 国内精品久久久久久久影视麻豆 | 亚州av网站| 九九视频精品免费 | 亚洲综合在线五月天 | 成人黄色大片网站 | 欧美日韩三级 | 精品一二三四五区 | 在线免费观看成人 | 五月婷婷六月丁香 | 日日爱网址 | 操综合| 色噜噜在线观看视频 | 99国产精品一区 | 天海翼一区二区三区免费 | 午夜久久网站 | 夜夜操综合网 | 精品久久久久国产免费第一页 | 成人羞羞视频在线观看免费 | 久草视频在线免费 | 亚洲成人一二三 | 久久8精品 | 最新久久免费视频 | 91丨九色丨高潮丰满 | 国产精品v欧美精品 | 国产1区在线观看 | 激情欧美国产 | 久久国产三级 | 青草视频在线看 | 丝袜美女在线观看 | 国产极品尤物在线 | 91色在线观看视频 | 深爱激情久久 | 国产精品99久久久久久小说 | 韩日精品在线 | 夜夜操网 | 在线视频app| 久久综合久久综合九色 | 狠狠色噜噜狠狠狠狠 | 国产手机免费视频 | 9797在线看片亚洲精品 | 久久精品99久久久久久2456 | 最近中文字幕在线中文高清版 | 美女视频网站久久 | 久久免费国产 | 91免费看片黄 | 色网站免费在线观看 | www国产亚洲精品久久麻豆 | 黄色精品网站 | 午夜三级福利 | 狠狠狠狠狠狠狠狠 | 中文字幕免费高清 | 中文字幕在线观看第一页 | 国产视频一区二区在线播放 | 国产一级性生活视频 | 国产伦精品一区二区三区无广告 | av高清一区二区三区 | 成年人免费在线观看网站 | 色偷偷88888欧美精品久久 | 免费在线播放视频 | 91热视频 | 九九久久久久久久久激情 | 中文字幕视频一区二区 | 久久久免费观看完整版 | 欧美日韩xxxxx | 国产一区二区三区四区大秀 | 免费看片网页 | 中文字幕在线观看免费高清电影 | 久久综合毛片 | 最近2019好看的中文字幕免费 | 97偷拍在线视频 | 成人sm另类专区 | 色婷婷综合久久久中文字幕 | 欧美精品一区二区三区一线天视频 | 国产一级久久 | 日韩在线观看第一页 | 香蕉久久久久久av成人 | 久久成年人 | 天天玩天天操天天射 | 欧美成人一二区 | 亚洲日本va午夜在线影院 | 在线一级片 | www.伊人色.com| 国产亚洲精品免费 | 日本精a在线观看 | 欧美成人一区二区 | 精品欧美一区二区三区久久久 | 亚洲做受高潮欧美裸体 | 在线亚洲免费视频 | 久久99久久99久久 | www四虎影院 | 成人网色 | 丁香婷婷综合激情 | 五月婷婷色 | 欧美91精品久久久久国产性生爱 | 在线观看中文字幕dvd播放 | 免费成人在线观看 | 成人av影视观看 | 亚洲国产成人av网 | 中文在线免费一区三区 | 久操伊人 | 久久超级碰视频 | 最近久乱中文字幕 | 久久99精品久久久久久久久久久久 | 伊人射| 久99久精品 | 九九热有精品 | 干干干操操操 | 深爱激情五月网 | 在线观看亚洲国产精品 | 欧美婷婷色 | 国产黄免费看 | av在线之家电影网站 | 国产精品欧美日韩 | 中文字幕日韩国产 | 国产午夜在线观看 | 久久精精品视频 | 欧美中文字幕久久 | 这里只有精品视频在线观看 | 涩涩资源网 | 久久精久久精 | 国产精品永久在线 | 天天操天天射天天舔 | 亚洲电影久久久 | 国产一二区视频 | av在线直接看 | 国产亚洲视频中文字幕视频 | 精品欧美乱码久久久久久 | 日韩高清片 | 久久香蕉一区 | 综合网天天色 | 久久久久久久久久影院 | 一级片免费视频 | 狠狠色综合欧美激情 | 免费观看一级视频 | www.久久爱.cn | 亚洲天堂在线观看完整版 | 亚洲成色777777在线观看影院 | 97视频人人澡人人爽 | 在线成人高清电影 | 国内精品亚洲 | 青草草在线| 国产精品毛片一区二区三区 | 伊人影院得得 | 亚洲高清免费在线 | 免费看国产视频 | 99这里只有精品视频 | 狠狠狠操| 就要干b| 2021国产视频 | 亚洲精品美女久久17c | 1区2区视频 | 久久久久久久久久毛片 | 亚洲国产欧洲综合997久久, | 国产99久久久国产精品 | 91大神一区二区三区 | 日韩精品一区二区在线观看 | 91精品蜜桃| 中文字幕乱码视频 | 天天射天天舔天天干 | 精品国产乱码一区二 | 人人看人人爱 | 国产精品99久久久久久人免费 | 国产色视频一区二区三区qq号 | 中文字幕日韩精品有码视频 | 亚洲国产美女久久久久 | 97色综合| 久久激情影院 | 亚洲日本精品视频 | 伊人婷婷| 免费在线观看91 | 97视频入口免费观看 | 久久久免费| 最近免费中文字幕mv在线视频3 | 国内精品久久久久影院一蜜桃 | 天天操天天摸天天爽 | 国产成人精品在线 | 日韩视频二区 | 成人av电影免费 | 少妇性bbb搡bbb爽爽爽欧美 | 91精选在线 | 中文字幕免费一区 | 日b视频在线观看网址 | 日韩成人精品一区二区 | 国产丝袜网站 | 玖玖视频国产 | 98涩涩国产露脸精品国产网 | 美女网站在线 | 91色欧美 | 欧美性生活久久 | 久久精品国产一区 | 99久久精品免费看国产麻豆 | 黄色在线视频网址 | 成人午夜性影院 | 国产一级在线观看 | 天天天天色综合 | 久久久久久久久久久福利 | 91福利视频免费 | 五月天综合激情 | 亚洲性视频| 亚洲精品在线观看中文字幕 | 国产精品久久久区三区天天噜 | 国产呻吟在线 | 毛片永久新网址首页 | 久久中文字幕导航 | av在线之家电影网站 | www.av在线播放 | 亚洲播放一区 | www.777奇米| 国产精品第54页 | 免费久久网站 | 国产欧美精品一区二区三区四区 | 久久久午夜剧场 | 日韩有码第一页 | 超碰人人舔 | 国产一区网 | 97免费在线观看视频 | 久久综合久久综合久久综合 | 91麻豆精品国产91久久久无限制版 | 99精品视频99 | 日韩中文在线观看 | 亚洲黄色大片 | 国产va在线观看免费 | 天天综合中文 | 成年人免费在线观看网站 | 精品久久久久久久久亚洲 | 国产在线高清 | 最新中文字幕在线观看视频 | 91九色蝌蚪在线 | 国产精品18久久久久久不卡孕妇 | 午夜影视剧场 | 99久久久国产免费 | 国产精品粉嫩 | 日韩精品一卡 | 日日躁夜夜躁xxxxaaaa | av色图天堂网 | 狠狠色噜噜狠狠狠合久 | 欧美精品在线一区二区 | 色视频网站免费观看 | 国产成人精品av久久 | 99产精品成人啪免费网站 | 免费黄色激情视频 | 久久综合九色综合久久久精品综合 | 成人av在线影院 | 99热这里只有精品久久 | 久久狠狠婷婷 | 日韩精品欧美一区 | 91av网站在线观看 | 99一区二区三区 | www久久99 | 欧美日韩国产精品一区 | 中国一区二区视频 | 免费看成人片 | 精品国产伦一区二区三区观看方式 | 一区二区视频网站 | 中文字幕色播 | 国产精品久久久久久久久久久免费看 | 国产字幕在线看 | 精品免费在线视频 | 99视频精品免费观看, | 不卡av在线免费观看 | 在线视频 一区二区 | 久久精品一区二区三区中文字幕 | 中文字幕在线播放视频 | 久99久精品视频免费观看 | 国产96在线观看 | 91黄视频在线 | 91超碰免费在线 | 一区二区欧美激情 | 手机看片午夜 | 黄色av观看 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产99久久久精品 | 国产一级二级av | 激情久久久 | 超碰人人在 | 欧美一二在线 | 亚州日韩中文字幕 | 欧美精品少妇xxxxx喷水 | 热精品| 18国产精品福利片久久婷 | 欧美福利在线播放 | 国产一区在线看 | 欧美日韩免费观看一区=区三区 | 99视频一区二区 | 国产精品福利无圣光在线一区 | 中国一级片免费看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 69xxxx欧美| 91少妇精拍在线播放 | 国产精品99久久久久久小说 | 中文字幕在线视频一区二区 | 91高清免费观看 | 成人看片| 91精品伦理| 91在线播放国产 | 亚洲久久视频 | 国产成人精品亚洲a | 国产99在线 | 伊人婷婷综合 | 人人爽人人搞 | 国产人免费人成免费视频 | 在线免费观看视频你懂的 | 国产精品久久久久久久久久妇女 | 欧美韩国日本在线 | 亚洲毛片一区二区三区 | 久久精品国产亚洲aⅴ | www.国产在线 | 国产一级二级视频 | 精品久久久精品 | 天天做天天爱天天爽综合网 | 九九热精品视频在线观看 | 最新日韩视频 | 国产一区二区在线免费播放 | 国产成人一区二 | 中文字幕欧美日韩va免费视频 | www.在线观看av | 日韩毛片在线免费观看 | av在线影片 | 一级片视频在线 | 国产97色在线 | 日韩啪啪小视频 | 99 久久久久 | 亚洲国产精品成人综合 | 观看免费av | 精品中文字幕在线观看 | 91九色视频| 国产伦精品一区二区三区无广告 | 欧美在线视频一区二区 | 丁香五月缴情综合网 | 天天艹天天操 | 99综合影院在线 | 亚洲欧洲国产日韩精品 | 日本最新高清不卡中文字幕 | 丁香综合五月 | 最新不卡av | 日韩精品久久久久久久电影99爱 | 国产精品成人一区二区 | 国产不卡毛片 | 久久久久国 | 久久综合久久综合久久综合 | av在线电影网站 | 久热色超碰 | 国产 日韩 中文字幕 | 国产老太婆免费交性大片 | 久久9999久久免费精品国产 | 日韩在线网 | 九九精品视频在线看 | 深爱五月网 | 免费在线电影网址大全 | 国产人成看黄久久久久久久久 | 欧美日韩在线精品一区二区 | 在线精品观看 | 国产亚洲精品免费 | 日韩免费三区 | 国产免费中文字幕 | 日本精品中文字幕在线观看 | 精品一区二区精品 | 麻豆91精品91久久久 | 欧美aa一级| 亚洲成人在线免费 | 欧美一进一出抽搐大尺度视频 | 亚洲涩涩色 | 丁香激情网 | 日韩欧美电影 | 天天射天天操天天色 | 国产精品18毛片一区二区 | 免费在线观看午夜视频 | 日韩一级电影在线 | 久久综合干 | 色五月成人 | 国产成人精品av在线观 | 久久免费成人精品视频 | 日韩成人黄色av | 中文字幕在线专区 | 一级黄色在线免费观看 | 国产精品久久久久一区二区三区共 | 黄色免费网战 | 午夜av免费观看 | 国产精品99久久久久久人免费 | 久章草在线观看 | 久久久国产精品视频 | 丁香资源影视免费观看 | 欧美乱码精品一区二区 | 欧美色婷婷 | 国产区久久 | 激情网色 | 日日日视频| 色婷婷www | 在线视频 你懂得 | 超碰97免费观看 | 国产成人精品在线 | www五月天 | 亚洲黄色av一区 | 在线午夜电影神马影院 | 开心激情综合网 | 九九精品毛片 | 高清久久久 | 成人黄色小说网 | 欧美日本不卡高清 | 在线观看视频福利 | av网站有哪些 | 中文字幕一区在线观看视频 | 国产a国产a国产a | 婷婷社区五月天 | 久久久久97国产 | 色偷偷网站视频 | 久久国产精品一区二区 | 日韩成人黄色av | 欧美精品一级视频 | 一区二区三区四区精品 | 天天综合成人 | 婷婷深爱五月 | 一级黄视频 | 亚洲黄色在线 | 精品毛片在线 | 久9在线| 久久久久久久久综合 | 五月婷婷色丁香 | 毛片www | 精品免费久久久久 | 超碰在线97国产 | 美女精品网站 | av成人在线网站 | 国产激情小视频在线观看 | 欧美一级黄色网 | 国产97碰免费视频 | 精品999久久久 | 二区三区在线 | 婷婷色 亚洲 | 最近中文字幕免费大全 | 中文字幕一区2区3区 | 欧美在线久久 | 国产免费又爽又刺激在线观看 | 岛国av在线免费 | 嫩模bbw搡bbbb搡bbbb | 色99导航 | 国产一区二区在线免费 | 日韩网站在线看片你懂的 | 日韩在线观看的 | 欧美日韩亚洲第一 | 国内精品久久久久久久97牛牛 | 日本精品久久久久久 | 九色视频网站 | 久久免费视频这里只有精品 | 怡红院久久 | 97超碰人人澡 | 精品 一区 在线 | 美女久久网站 | 久久久免费在线观看 | 97精品国产aⅴ | 一区二区不卡视频在线观看 | 亚洲视频网站在线观看 | 九九免费精品视频 | 在线观看午夜 | 中文字幕资源在线观看 | www.天天成人国产电影 | 欧美日韩国产在线一区 | 91精品毛片 | 日本精品视频网站 | 亚洲精品美女久久久久网站 | 国产精品高 | 国产精品免费久久久久影院仙踪林 | 亚州精品天堂中文字幕 | 国产一级二级三级在线观看 | 五月婷婷丁香网 | 中文字幕亚洲高清 | 99久久激情 | 亚洲精品乱码久久久久久久久久 | 国产麻豆视频网站 | 色综合久久久久综合 | 国产精品乱码久久久久久1区2区 | 成年人在线免费视频观看 | 色综合久久88色综合天天6 | 美女视频黄色免费 | 丝袜+亚洲+另类+欧美+变态 | 国产精品 久久 | 激情五月综合 | 亚洲精品字幕在线观看 | 色偷偷88欧美精品久久久 | 最近中文字幕国语免费高清6 | 看黄色.com | 欧美日韩精品影院 | 国产精品1区 | 欧美一区二区三区在线看 | 久久国产福利 | 人人爽人人爽人人爽学生一级 | 久久国产精品免费一区二区三区 | 国产一级免费观看 | 国产区在线看 | 欧美日韩3p| 在线之家免费在线观看电影 | 国产大尺度视频 | 亚洲国产成人久久 | 色之综合网 | 黄色av大片 | 激情av资源 | 日韩av电影免费观看 | 免费www视频 | 手机在线中文字幕 | 黄色a在线 | 成人h在线播放 | 免费日韩视 | 成人a在线观看高清电影 | 手机成人在线电影 | 欧美精品一区二区蜜臀亚洲 | 五月婷婷国产 | 日本精品在线看 | 九九精品在线观看 | 欧美一级免费片 | 在线免费高清视频 | 成年人网站免费观看 | 综合色在线观看 | 色中色综合 | 成人av片免费观看app下载 | 国产成人av在线 | 高清av免费观看 | 日韩综合色 | 久久久国产精品人人片99精片欧美一 | 久久久激情视频 | 欧美日韩另类视频 | 中文字幕精品一区二区精品 | 中文字幕一区二区三区四区视频 | 黄色官网在线观看 | 亚洲国内精品 | 91视频下载 | 国产一区二区精品 | 97夜夜澡人人双人人人喊 | 99热最新地址 | 国产精品一区二区三区观看 | 亚洲精品乱码久久久久久久久久 | 深爱婷婷网 | 美女久久99 | 亚州精品一二三区 | 亚洲国产精品电影在线观看 | 91久久久久久久一区二区 | 色久天| 久久 在线 | 香蕉视频在线观看免费 | 成人午夜影视 | 久久一区二 | 日韩在线视频线视频免费网站 | 成人黄视频 | 超碰在线人人97 | 91九色最新地址 | 久久久久久免费 | 一区二区三区在线观看免费视频 | 欧美日韩精品影院 | 日韩中文字幕在线观看 | 99在线观看视频网站 | 最新av在线播放 | 999国内精品永久免费视频 | 午夜视频在线观看一区 | 999电影免费在线观看 | 超级av在线| 黄污视频大全 | 99视频在线看 | 国产亚洲婷婷免费 | 在线亚洲成人 | 欧美一级黄色片 | 久草在线资源免费 | 国内成人精品2018免费看 | 久久a v电影 | 久久精品99国产精品亚洲最刺激 | 俺要去色综合狠狠 | 国产五月天婷婷 | 日本爽妇网 | 免费观看国产精品视频 | 精品国产一区二区三区久久久蜜臀 | 久久精品资源 | 国产色婷婷精品综合在线手机播放 | 久在线| 韩国av免费看 | 欧美精品v国产精品v日韩精品 | 五月天精品视频 | 一区二区视频网站 | 亚洲婷婷在线视频 | 国产免费一区二区三区最新6 | 久久久午夜影院 | 国产在线精品区 | 国产精品二区在线观看 | 人人超碰在线 | 国产高清中文字幕 | 亚洲欧洲日韩在线观看 | 国产高清一级 | 亚洲国产精品va在线看黑人 | 香蕉久久久久久av成人 | 99精品网站 | 五月天激情综合网 | 久久国产露脸精品国产 | 97碰碰视频 | 91精品色 | 国产成人在线免费观看 | 国产丝袜一区二区三区 | 亚洲九九九在线观看 | 国产高清免费在线观看 | 色网站在线看 | 亚洲国产人午在线一二区 | 九九九视频在线 | 国产精品久久久一区二区三区网站 | 在线观看久久久久久 | 天天躁天天狠天天透 | 国产剧情一区二区在线观看 | 91在线视频网址 | 在线观看中文字幕一区 | 久久av中文字幕片 | 精品久久综合 | 97av视频| 中文字幕视频网站 | 四虎小视频 | 麻豆精品传媒视频 | 91成人短视频在线观看 | 999久久久久久久久久久 | 狠狠操天天操 | 91在线视频一区 | 免费看片色| 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲国产手机在线 | 高清一区二区三区 | 麻豆av一区二区三区在线观看 | 欧美日韩国产一区二区在线观看 | 亚洲精品欧美视频 | 一本到视频在线观看 | 精品v亚洲v欧美v高清v | 西西www4444大胆在线 | 免费的黄色的网站 | 成人动漫视频在线 | 亚洲四虎在线 | 在线 欧美 日韩 | av免费福利| 看av在线| 五月天网页 | 久久久久国产视频 | 成人禁用看黄a在线 | 韩日视频在线 | 精品久久久免费 | 久久a久久| 日韩精品在线一区 | 激情在线免费视频 | 中文字幕第一 | 看片网站黄 | 久久爱资源网 | 色七七亚洲影院 | 国产一级精品绿帽视频 | 久久久久欠精品国产毛片国产毛生 | 国产无套精品久久久久久 | 日韩精品久久一区二区三区 | 中文字幕资源网在线观看 | 久久久免费精品 | 中文字幕精品一区久久久久 | 日韩视频免费在线观看 | 欧美aa一级片| 九色精品在线 | 亚洲欧洲国产视频 | 欧美精品乱码久久久久 | 中文字幕三区 | 成 人 黄 色 视频播放1 | 日p在线观看 | 国产黄色av网站 | 久久久久久久久久久福利 | 久射网| 欧美日韩在线视频观看 | 麻豆传媒在线免费看 | 99视频+国产日韩欧美 | 色天天久久 | 在线观看激情av | 国产视频不卡 | 在线观看av国产 | 日日操夜夜操狠狠操 | 视频 天天草 | 色综合久久88色综合天天人守婷 | 久艹在线免费观看 | 免费高清看电视网站 | 天天天干天天射天天天操 | 最近最新中文字幕视频 | 久草在线免费电影 | 欧美a性 | 18岁免费看片 | 中文字幕最新精品 | 日韩午夜av| 9999毛片| 国产探花 | 国产香蕉视频在线播放 | 日韩一区正在播放 | 免费看一级黄色大全 | 日韩在线观看视频中文字幕 | 麻豆视频一区二区 | 超碰国产在线观看 | 五月婷香蕉久色在线看 | 精品久久一区 | 一级一片免费观看 | 最新中文字幕视频 | 免费日韩一级片 | 超碰大片 | 成年人国产精品 | 中文 一区二区 | 国产在线观看免费 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 在线视频日韩精品 | 91av视频在线观看免费 | 黄色中文字幕 | 黄色日视频 | 成人在线超碰 | 午夜精品久久久久久久99婷婷 | 免费看一及片 | 国产精品色在线 | 在线视频 你懂得 | 人人藻人人澡人人爽 | 中文区中文字幕免费看 | 超碰99人人 | 激情综合网婷婷 | 午夜国产福利视频 | 波多野结衣在线播放视频 | 91精品视频在线免费观看 | 国产精品久久久99 | 久久久国产影视 | 国产色a在线观看 | 久草综合在线 | 国产在线观看你懂的 | 在线 成人 | 国产在线观看av | 久久久久久久久久毛片 | 免费在线观看视频a | 国产美腿白丝袜足在线av | 国产在线观看91 | 麻豆视频在线观看免费 | 性色av香蕉一区二区 | 免费国产亚洲视频 | 国产成人亚洲精品自产在线 | 久草在线最新 | 欧美日韩精品在线免费观看 | 97品白浆高清久久久久久 | 91丨九色丨蝌蚪丨老版 | 国产精品毛片一区二区在线 | 国产精品专区一 | 在线观看视频日韩 | 久久成人欧美 | 成人小视频在线 | 中文永久免费观看 | 日本中文字幕高清 | 亚洲精品66 | 精品国产乱码久久久久久三级人 | 黄色一级网 | 操操操av| 亚洲欧美日韩在线一区二区 | 永久免费的av电影 | 日韩免费高清在线观看 | 97在线视 | 久亚洲精品| 一色屋精品视频在线观看 | 99久久精品免费一区 | 久久久美女 | 亚洲精品乱码久久久久 | 日韩精品大片 | 亚洲播放一区 | 久草精品在线播放 | 久久久精品99| 久久免费中文视频 | 97日日碰人人模人人澡分享吧 | aaaaaa毛片| 天堂网一区二区 | 国产精品久久久久久妇 | 中午字幕在线观看 | 亚洲码国产日韩欧美高潮在线播放 | 色婷婷激情 | 狠狠色狠狠色终合网 | 成人免费网站视频 | 国产一区二区网址 | 麻豆免费精品视频 | 色综合久久88色综合天天6 | 日日夜精品 | 91福利区一区二区三区 | 狠狠狠狠狠狠干 | 国产福利中文字幕 | 精品久操| 精品久久久久久久久久岛国gif | 久久情网| 欧美激情亚洲综合 | 国产精品久久久久久久久久久久午夜 | 欧美日韩精品国产 | 啪一啪在线| 成人a免费 | 激情综合啪| 国产视频黄 | 欧美精品xxx | 久草视频看看 | 天天爽天天爽天天爽 | 黄色www在线观看 | 五月婷婷中文网 | 五月天电影免费在线观看一区 | 77国产精品 | 久久久久精 | 韩日av一区二区 | 91tv国产成人福利 | 国产裸体视频bbbbb | 色网影音先锋 | 天天干天天搞天天射 | 国产成人亚洲精品自产在线 | 99精品免费久久久久久久久 | 人人狠狠综合久久亚洲 | 成人免费视频网址 | 精品国产一区二区三区噜噜噜 | 免费高清在线观看成人 | 精品国产亚洲日本 | 国产精品久久99精品毛片三a | 日韩久久午夜一级啪啪 | 天天天色 | 国产精品亚洲片在线播放 | 久久久午夜精品理论片中文字幕 | 九色视频自拍 | 久久你懂得 | av免费试看 | 超碰人人在线 | 久久久国产一区二区 | 91精品福利在线 | 天天综合网入口 | 狠狠干在线播放 | www.com.黄| 欧美色综合天天久久综合精品 | 日韩性久久 | 日本久久久久久久久久久 | 中文字幕第一页在线播放 | 久久精品视频中文字幕 | 亚洲精品男人天堂 | 香蕉久草在线 | 成人免费看片98欧美 | 欧美日韩裸体免费视频 | 国产一区二区精品久久91 | 国产在线精品播放 | 亚洲美女视频网 | 中文字幕日韩伦理 | 久久久久国产一区二区三区 |