精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深度C++:遍歷Unordered_map順序問題

開發 前端
原系統基于GCC4.8.5,使用C++11標準開發,內部基于unordered_map存儲數據,新系統先在升級GCC為7.3.0,仍然使用C++11標準開發。

說明

unordered_map 是關聯容器,含有帶唯一鍵的鍵-值對。搜索、插入和元素移除擁有平均常數時間復雜度。元素在內部不以任何特定順序排序,而是組織進桶中。元素放進哪個桶完全依賴于其鍵的哈希。這允許對單獨元素的快速訪問,因為一旦計算哈希,則它準確指代元素所放進的桶。

問題

原系統基于GCC4.8.5,使用C++11標準開發,內部基于unordered_map存儲數據,新系統先在升級GCC為7.3.0,仍然使用C++11標準開發。新舊系統都基于一份持久化文件恢復數據,并按照同一順序插入unordered_map,并遍歷unordered_map組包對外發送,通過對比新舊系統對外發包內容一致性,來驗證新舊系統的正確性。

但驗證的現象是新舊系統發包順序不一致。

原因分析

  • 哈希策略在不同GCC版本中有變化,插入時rehash時機不一樣了(__prime_list不同)

  • 初始桶的大小不一樣,GCC4.8.5有默認值 10,之后的版本取消了默認值

根本原因:初始桶大小和每次插入時桶大小要保持一致

解決方案

  • 替換GCC7.3.0里的哈希策略為GCC4.8.5的(標準庫生成是弱符號,使用stub.cpp強符號替換)
//stub.cpp
#include <utility>
#include <cstddef>
#include <algorithm>

namespace std
{
namespace __detail
{
extern const unsigned long __prime_list[] = // 256 + 1 or 256 + 48 + 1
{
2ul, 3ul, 5ul, 7ul, 11ul, 13ul, 17ul, 19ul, 23ul, 29ul, 31ul,
37ul, 41ul, 43ul, 47ul, 53ul, 59ul, 61ul, 67ul, 71ul, 73ul, 79ul,
83ul, 89ul, 97ul, 103ul, 109ul, 113ul, 127ul, 137ul, 139ul, 149ul,
157ul, 167ul, 179ul, 193ul, 199ul, 211ul, 227ul, 241ul, 257ul,
277ul, 293ul, 313ul, 337ul, 359ul, 383ul, 409ul, 439ul, 467ul,
503ul, 541ul, 577ul, 619ul, 661ul, 709ul, 761ul, 823ul, 887ul,
953ul, 1031ul, 1109ul, 1193ul, 1289ul, 1381ul, 1493ul, 1613ul,
1741ul, 1879ul, 2029ul, 2179ul, 2357ul, 2549ul, 2753ul, 2971ul,
3209ul, 3469ul, 3739ul, 4027ul, 4349ul, 4703ul, 5087ul, 5503ul,
5953ul, 6427ul, 6949ul, 7517ul, 8123ul, 8783ul, 9497ul, 10273ul,
11113ul, 12011ul, 12983ul, 14033ul, 15173ul, 16411ul, 17749ul,
19183ul, 20753ul, 22447ul, 24281ul, 26267ul, 28411ul, 30727ul,
33223ul, 35933ul, 38873ul, 42043ul, 45481ul, 49201ul, 53201ul,
57557ul, 62233ul, 67307ul, 72817ul, 78779ul, 85229ul, 92203ul,
99733ul, 107897ul, 116731ul, 126271ul, 136607ul, 147793ul,
159871ul, 172933ul, 187091ul, 202409ul, 218971ul, 236897ul,
256279ul, 277261ul, 299951ul, 324503ul, 351061ul, 379787ul,
410857ul, 444487ul, 480881ul, 520241ul, 562841ul, 608903ul,
658753ul, 712697ul, 771049ul, 834181ul, 902483ul, 976369ul,
1056323ul, 1142821ul, 1236397ul, 1337629ul, 1447153ul, 1565659ul,
1693859ul, 1832561ul, 1982627ul, 2144977ul, 2320627ul, 2510653ul,
2716249ul, 2938679ul, 3179303ul, 3439651ul, 3721303ul, 4026031ul,
4355707ul, 4712381ul, 5098259ul, 5515729ul, 5967347ul, 6456007ul,
6984629ul, 7556579ul, 8175383ul, 8844859ul, 9569143ul, 10352717ul,
11200489ul, 12117689ul, 13109983ul, 14183539ul, 15345007ul,
16601593ul, 17961079ul, 19431899ul, 21023161ul, 22744717ul,
24607243ul, 26622317ul, 28802401ul, 31160981ul, 33712729ul,
36473443ul, 39460231ul, 42691603ul, 46187573ul, 49969847ul,
54061849ul, 58488943ul, 63278561ul, 68460391ul, 74066549ul,
80131819ul, 86693767ul, 93793069ul, 101473717ul, 109783337ul,
118773397ul, 128499677ul, 139022417ul, 150406843ul, 162723577ul,
176048909ul, 190465427ul, 206062531ul, 222936881ul, 241193053ul,
260944219ul, 282312799ul, 305431229ul, 330442829ul, 357502601ul,
386778277ul, 418451333ul, 452718089ul, 489790921ul, 529899637ul,
573292817ul, 620239453ul, 671030513ul, 725980837ul, 785430967ul,
849749479ul, 919334987ul, 994618837ul, 1076067617ul, 1164186217ul,
1259520799ul, 1362662261ul, 1474249943ul, 1594975441ul, 1725587117ul,
1866894511ul, 2019773507ul, 2185171673ul, 2364114217ul, 2557710269ul,
2767159799ul, 2993761039ul, 3238918481ul, 3504151727ul, 3791104843ul,
4101556399ul, 4294967291ul,
// Sentinel, so we don't have to test the result of lower_bound,
// or, on 64-bit machines, rest of the table.
#if __SIZEOF_LONG__ != 8
4294967291ul
#else
6442450933ul, 8589934583ul, 12884901857ul, 17179869143ul,
25769803693ul, 34359738337ul, 51539607367ul, 68719476731ul,
103079215087ul, 137438953447ul, 206158430123ul, 274877906899ul,
412316860387ul, 549755813881ul, 824633720731ul, 1099511627689ul,
1649267441579ul, 2199023255531ul, 3298534883309ul, 4398046511093ul,
6597069766607ul, 8796093022151ul, 13194139533241ul, 17592186044399ul,
26388279066581ul, 35184372088777ul, 52776558133177ul, 70368744177643ul,
105553116266399ul, 140737488355213ul, 211106232532861ul, 281474976710597ul,
562949953421231ul, 1125899906842597ul, 2251799813685119ul,
4503599627370449ul, 9007199254740881ul, 18014398509481951ul,
36028797018963913ul, 72057594037927931ul, 144115188075855859ul,
288230376151711717ul, 576460752303423433ul,
1152921504606846883ul, 2305843009213693951ul,
4611686018427387847ul, 9223372036854775783ul,
18446744073709551557ul, 18446744073709551557ul
#endif
};
/// Default value for rehash policy. Bucket size is (usually) the
/// smallest prime that keeps the load factor small enough.
struct _Prime_rehash_policy
{
_Prime_rehash_policy(float __z = 1.0);

float
max_load_factor() const noexcept;


// Return a bucket size no smaller than n.
std::size_t
_M_next_bkt(std::size_t __n) const;

// Return a bucket count appropriate for n elements
std::size_t
_M_bkt_for_elements(std::size_t __n) const;

// __n_bkt is current bucket count, __n_elt is current element count,
// and __n_ins is number of elements to be inserted. Do we need to
// increase bucket count? If so, return make_pair(true, n), where n
// is the new bucket count. If not, return make_pair(false, 0).
std::pair<bool, std::size_t>
_M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt,
std::size_t __n_ins) const;

typedef std::size_t _State;

_State
_M_state() const;

void
_M_reset(_State __state);


enum { _S_n_primes = sizeof(unsigned long) != 8 ? 256 : 256 + 48 };

static const std::size_t _S_growth_factor = 2;

float _M_max_load_factor;
mutable std::size_t _M_next_resize;
};

_Prime_rehash_policy::_Prime_rehash_policy(float __z)
: _M_max_load_factor(__z), _M_next_resize(0) { }

float
_Prime_rehash_policy::max_load_factor() const noexcept
{ return _M_max_load_factor; }

std::size_t
_Prime_rehash_policy::_M_bkt_for_elements(std::size_t __n) const
{ return __builtin_ceil(__n / (long double)_M_max_load_factor); }

_Prime_rehash_policy::_State
_Prime_rehash_policy::_M_state() const
{ return _M_next_resize; }

void
_Prime_rehash_policy::_M_reset(_State __state)
{ _M_next_resize = __state; }

// Return a prime no smaller than n.
std::size_t
_Prime_rehash_policy::_M_next_bkt(std::size_t __n) const
{
// Optimize lookups involving the first elements of __prime_list.
// (useful to speed-up, eg, constructors)
static const unsigned char __fast_bkt[12]
= { 2, 2, 2, 3, 5, 5, 7, 7, 11, 11, 11, 11 };

if (__n <= 11)
{
_M_next_resize =
__builtin_ceil(__fast_bkt[__n] * (long double)_M_max_load_factor);
return __fast_bkt[__n];
}

const unsigned long* __next_bkt =
std::lower_bound(__prime_list + 5, __prime_list + _S_n_primes, __n);
_M_next_resize =
__builtin_ceil(*__next_bkt * (long double)_M_max_load_factor);
return *__next_bkt;
}

// Finds the smallest prime p such that alpha p > __n_elt + __n_ins.
// If p > __n_bkt, return make_pair(true, p); otherwise return
// make_pair(false, 0). In principle this isn't very different from
// _M_bkt_for_elements.

// The only tricky part is that we're caching the element count at
// which we need to rehash, so we don't have to do a floating-point
// multiply for every insertion.

std::pair<bool, std::size_t>
_Prime_rehash_policy::
_M_need_rehash(std::size_t __n_bkt, std::size_t __n_elt,
std::size_t __n_ins) const
{
if (__n_elt + __n_ins >= _M_next_resize)
{
long double __min_bkts = (__n_elt + __n_ins)
/ (long double)_M_max_load_factor;
if (__min_bkts >= __n_bkt)
return std::make_pair(true,
_M_next_bkt(std::max<std::size_t>(__builtin_floor(__min_bkts) + 1,
__n_bkt * _S_growth_factor)));

_M_next_resize
= __builtin_floor(__n_bkt * (long double)_M_max_load_factor);
return std::make_pair(false, 0);
}
else
return std::make_pair(false, 0);
}
} // namespace __detail
} // namespace std
  • 設置GCC7.3.0初始桶大小為10
#include <iostream>
#include <string>
#include <unordered_map>

int main(){
// 創建三個 string 的 unordered_map (映射到 string )
std::unordered_map<std::string, std::string> u;
u.reserve(10);

std::cout << "load_factor:" << u.load_factor() << std::endl;
std::cout << "max_load_factor:" << u.max_load_factor() << std::endl;
std::cout << "bucket_count:" << u.bucket_count() << std::endl;
std::cout << "size:" << u.size() << std::endl;
bool will_rehash = (u.max_load_factor()*u.bucket_count()) < (u.size()+1);
std::cout << "will_rehash:" << will_rehash << std::endl;

for(int i = 0; i < 10; i++)
{
u.insert({std::to_string(i), std::to_string(i)});
}

// 迭代并打印 unordered_map 的關鍵和值
for( const auto& n : u ) {
std::cout << "Key:[" << n.first << "] Value:[" << n.second << "]\n";
}

std::cout << "load_factor:" << u.load_factor() << std::endl;
std::cout << "max_load_factor:" << u.max_load_factor() << std::endl;
std::cout << "bucket_count:" << u.bucket_count() << std::endl;
std::cout << "size:" << u.size() << std::endl;
will_rehash = (u.max_load_factor()*u.bucket_count()) > (u.size()+1);
std::cout << "will_rehash:" << will_rehash << std::endl;

return 0;
}
  • CMakeLists.txt
project(unordered_map)

cmake_minimum_required(VERSION 3.5)

add_executable(the_executable
stub.cpp
main.cpp)

target_link_libraries(the_executable
um)

驗證

在線驗證

https://godbolt.org/z/x3v36YaKc


責任編輯:武曉燕 來源: 今日頭條
相關推薦

2025-04-22 08:39:14

編程容器map

2010-01-27 15:50:23

C++復雜性

2010-01-11 10:19:57

C++開發工具

2010-01-28 16:31:54

C++類型

2012-08-03 08:57:37

C++

2025-09-30 09:34:14

2024-03-11 06:05:00

C++字符串

2023-01-03 13:30:14

C++代碼map

2025-08-28 09:21:25

2010-01-11 16:31:54

C++優化器

2010-02-02 15:44:18

C++遍歷集合

2017-09-13 10:04:41

性能探究HashMap

2010-01-15 10:32:21

C++語言

2010-01-27 16:10:32

C++靜態構造函數

2010-01-26 14:46:42

C++語言

2016-09-19 10:54:36

C語言靜態連接語言

2011-04-21 17:32:15

CC++

2010-01-18 09:39:25

C++語言

2010-01-21 16:18:06

C++語言

2010-01-25 14:18:46

C++對象模型
點贊
收藏

51CTO技術棧公眾號

91九色视频导航| 色香阁99久久精品久久久| 黄网站欧美内射| 国产精品四虎| 国产精品夜夜爽| 国产91精品视频在线观看| 日本美女bbw| 福利片一区二区| 在线免费一区三区| 女人色极品影院| 国产高清视频在线观看| 国产精品18久久久久久久久久久久| 91国产美女视频| 久久久精品少妇| 伊人久久综合影院| 日韩一区二区免费视频| 欧美极品欧美精品欧美图片| 影音先锋中文在线视频| 欧美激情资源网| 精品乱子伦一区二区三区| 中文字幕一区二区三区四区免费看 | 欧美激情第六页| www日本视频| 奇米四色…亚洲| 91成人精品网站| 久久无码精品丰满人妻| 欧美大片aaaa| 国产一区二区三区在线视频 | 久久99国产精品视频| 欧美一卡2卡3卡4卡| 免费黄色一级网站| 一根才成人网| 精品美女永久免费视频| 人妻互换免费中文字幕| 免费观看在线黄色网| 久久久电影一区二区三区| 国产在线精品一区二区中文| 成人av手机在线| 国产综合久久久久影院| 国产欧美精品va在线观看| 久久久久久久久黄色| 日韩视频在线一区二区三区| 欧美激情第三页| 丰满少妇高潮久久三区| 综合在线视频| 欧美精品性视频| 婷婷在线精品视频| 一区二区三区国产精华| 久久亚洲精品中文字幕冲田杏梨 | 亚洲男人的天堂在线观看| 樱花www成人免费视频| 在线观看黄色av| 国产精品卡一卡二卡三| 亚洲精品一品区二品区三品区| 理论在线观看| 中文字幕乱码亚洲精品一区| 亚洲人成网站在线播放2019| 日本成a人片在线观看| 中文字幕一区二区三区视频| 亚洲一区二区在| 精品麻豆一区二区三区| 一区二区三区不卡视频| 国产毛片久久久久久国产毛片| 黄网av在线| 亚洲不卡在线观看| 妺妺窝人体色www在线小说| 在线免费日韩片| 欧美在线小视频| 手机av在线网| xxxxxhd亚洲人hd| 亚洲精品一二区| 国产黄色片在线| 欧美激情一级片一区二区| 久久久久国产一区二区三区| 国产成人自拍视频在线| 狂野欧美性猛交xxxx巴西| 国产精品久久久久久av下载红粉| 国产一区二区三区三州| 国产成人aaa| 欧美精品久久| 国内精品久久久久国产| 婷婷亚洲久悠悠色悠在线播放| 国内自拍在线观看| 成人免费黄色| 精品三级av在线| 国产精品扒开腿做爽爽| 久久久久久久久99精品大| 欧美激情a在线| 在线视频一区二区三区四区| 久久99精品久久只有精品| 国产高清精品一区二区三区| 久青草国产在线| 亚洲免费观看高清完整版在线| 亚洲中文字幕无码专区| 欧美少妇激情| 亚洲精品久久久久国产| 亚洲国产精品一区二区久久hs| 精品成人国产| 成人免费看吃奶视频网站| 色婷婷av一区二区三| 中文字幕成人网| 91精品国产91久久久久麻豆 主演| 国产精品亚洲一区二区三区在线观看| 欧美一区二区三区免费观看视频 | 中文字幕欧美一区| 亚洲熟妇无码另类久久久| 九九九精品视频| 日韩精品中文字幕视频在线| 国产美女久久久久久| 久久婷婷久久| 国产美女精品久久久| 日本激情视频在线观看| 色综合天天性综合| 被黑人猛躁10次高潮视频| 精品少妇av| 欧美一级片在线播放| 国产免费一区二区三区免费视频| 久久久影视传媒| 免费高清一区二区三区| 亚洲爽爆av| 永久555www成人免费| 国产黄色免费观看| 波多野结衣中文一区| 国产欧美综合一区| 欧洲精品久久久久毛片完整版| 日韩精品黄色网| 久久亚洲av午夜福利精品一区| 美女网站色91| 亚洲va久久久噜噜噜久久狠狠 | 污污内射在线观看一区二区少妇 | 久久国产视频网站| 亚洲综合一区中| 国产精品网曝门| 男女视频在线看| av在线不卡顿| 国产精品69精品一区二区三区| 亚洲 美腿 欧美 偷拍| 亚洲成人免费av| 韩国三级在线看| 国产精品99一区二区| 亚洲一区二区少妇| 超碰在线caoporn| 777精品伊人久久久久大香线蕉| 国产又粗又长免费视频| 人人爽香蕉精品| 少妇精品久久久久久久久久| 成人小电影网站| 亚洲免费一级电影| 少妇久久久久久久| 国产精品色婷婷久久58| 色播五月综合网| 911精品美国片911久久久 | 国产成人三级在线播放| 亚洲免费在线观看视频| 一级黄色大片免费看| 狠狠爱www人成狠狠爱综合网| 成人国产一区二区| 阿v视频在线观看| 亚洲片av在线| 欧美性受xxx黑人xyx性爽| 国产精品久久久久久久久动漫 | 国产欧美一区视频| 超碰超碰在线观看| 影音先锋成人在线电影| 翡翠波斯猫1977年美国| 激情国产在线| 中文字幕日韩av电影| 国产三级伦理片| 亚洲午夜激情网站| 久久久久亚洲av无码专区桃色| 日韩黄色在线观看| 在线丝袜欧美日韩制服| 91精品短视频| 国产成人小视频在线观看| 伊人在线视频| 日韩美女视频一区二区在线观看| 久久不卡免费视频| 中文字幕免费不卡| 久久久无码人妻精品无码| 午夜在线播放视频欧美| 一区二区日本| 久久久久97| 国产欧美日韩专区发布| 国模雨婷捆绑高清在线| 国产亚洲欧美日韩精品| 国产高清在线免费| 日韩欧美中文字幕在线播放| 国产精品久久免费观看| 国产成人精品免费| 国产精品入口免费软件| 欧美视频不卡| 日韩亚洲欧美精品| 999久久久精品一区二区| 国产极品精品在线观看| 欧美色图天堂| 在线观看国产精品淫| 肥臀熟女一区二区三区| 欧美色图在线观看| 中文字幕第28页| 国产精品国产三级国产普通话99| 精品久久久久一区二区| 另类成人小视频在线| 你懂的av在线| 亚洲人metart人体| 日产精品高清视频免费| www国产精品| 成人精品久久av网站| 在线观看欧美日韩电影| 欧美精品电影免费在线观看| 91大神xh98hx在线播放| 日韩精品免费一线在线观看| 国产午夜一区二区| 五月婷婷六月婷婷| 亚洲国产精品嫩草影院| 中文字幕电影av| 久久日韩粉嫩一区二区三区| 少妇欧美激情一区二区三区| 美女一区二区久久| www.亚洲天堂网| 亚洲午夜精品久久久久久app| 亚洲亚洲精品三区日韩精品在线视频| 欧美做受69| 国产视频99| av日韩精品| 成人欧美一区二区三区视频 | 欧美日本亚洲韩国国产| 日韩免费毛片| 五月天亚洲色图| 狠狠色综合一区二区| 亚洲天堂av资源在线观看| 国产日韩精品视频| 日本精品久久| 国产精品亚洲美女av网站| 另类激情视频| 欧美一级免费看| 涩涩视频在线播放| 97视频在线免费观看| 金瓶狂野欧美性猛交xxxx | 欧美老熟妇一区二区三区| 国产精品另类一区| 日本不卡一区视频| 国产精品毛片高清在线完整版| 中文字幕免费高清| 久久久久久免费毛片精品| 中国黄色a级片| wwww国产精品欧美| 天天躁日日躁aaaxxⅹ | 97在线观看视频免费| 国产高清在线a视频大全| 欧美精品一区二区三区蜜桃| 无码人妻精品一区二区三| 风间由美性色一区二区三区| 无码人妻丰满熟妇区毛片蜜桃精品 | sdde在线播放一区二区| 色噜噜一区二区| 999精品色在线播放| 在线观看日韩羞羞视频| 99久久久国产精品美女| 青少年xxxxx性开放hg| 亚洲精品中文字幕乱码| 国产奶头好大揉着好爽视频| 91精品国产乱码久久久久久| 五月天在线免费视频| 国产精品v日韩精品v欧美精品网站 | 99视频国产精品免费观看| **爰片久久毛片| 国产精品视频入口| 卡通动漫精品一区二区三区| 久久精品99久久| 欧洲视频一区| 在线观看污视频| 亚洲精选91| 色诱视频在线观看| 狠狠色综合色综合网络| 亚洲熟女一区二区三区| 91免费观看视频在线| 成人性生交大片免费看无遮挡aⅴ| 国产精品久久久久久久午夜片| 国产suv精品一区二区68| 亚洲成人免费在线观看| 成人免费一区二区三区| 日韩一区二区三区精品视频| 四虎在线免费观看| 日韩在线视频网站| 17videosex性欧美| 国产精品日韩在线观看| 亚洲精品不卡在线观看| 欧美一级片免费观看| 亚洲欧美伊人| 欧美伦理片在线看| 国产91精品精华液一区二区三区| 扒开jk护士狂揉免费| 1区2区3区国产精品| 日韩美女黄色片| 欧美日本在线播放| 涩爱av在线播放一区二区| 久久精品人人做人人爽| 小早川怜子影音先锋在线观看| 国产九九精品视频| 亚欧日韩另类中文欧美| 在线观看免费黄色片| 老牛国产精品一区的观看方式| 国产男女无遮挡猛进猛出| 久久久99免费| 日操夜操天天操| 91麻豆精品久久久久蜜臀| av女名字大全列表| 精品综合久久久久久97| 天堂久久午夜av| 国产尤物99| 欧美性色综合| 天堂av.com| 中日韩av电影| 久久久久久在线观看| 亚洲精品一区二区精华| 国产高清一区二区三区视频 | 免费精品一区| 亚洲国产日韩欧美| 亚洲一区二区毛片| 人妻激情偷乱频一区二区三区| 欧美激情一级片一区二区| 色一区av在线| 成人短视频app| 国精产品99永久一区一区| 1024精品久久久久久久久| 亚洲 欧美 另类人妖| 久久影视一区二区| 日韩精品在线不卡| 精品国产亚洲一区二区三区在线观看| 秋霞成人影院| 国产精品入口免费视| 精品99久久| 凹凸日日摸日日碰夜夜爽1| eeuss国产一区二区三区| 免费三片在线播放| 日韩欧美国产综合| 菠萝菠萝蜜在线视频免费观看| 国产视频999| 国产国产精品| www.五月天色| 亚洲视频 欧洲视频| 国产精品永久久久久久久久久| 中文国产成人精品久久一| 欧美日韩女优| 亚州欧美一区三区三区在线| 男人的j进女人的j一区| 欧美aaa级片| 精品视频一区二区不卡| 午夜小视频在线| 亚洲xxxxx性| 欧美午夜影院| 久久国产精品无码一级毛片| 欧美日韩亚洲网| 国产无套粉嫩白浆在线2022年| 国产成人精品优优av| 日本一区二区高清不卡| 自拍偷拍21p| 亚洲日本在线天堂| 亚洲av无码一区二区乱子伦 | 台湾成人av| 久久精品国产免费| 免费视频网站www| 日韩黄色av网站| 日韩不卡在线| 黄色录像特级片| 成a人片亚洲日本久久| 日韩黄色在线播放| 在线性视频日韩欧美| 99久久这里有精品| 日本阿v视频在线观看| 久久影院电视剧免费观看| 中文字幕在线网站| 欧美激情在线观看视频| 伊人成综合网伊人222| gogogo高清免费观看在线视频| 亚洲美女偷拍久久| 天堂a√在线| 成人两性免费视频| 日韩一级精品| 国产福利在线导航| 精品国产亚洲在线| 国产黄色精品| 免费视频爱爱太爽了| 久久久国产精品不卡| 99热这里精品| 国产97在线亚洲| 最新国产精品久久久| 三上悠亚影音先锋| 日韩精品一区二区三区四区视频| 91av亚洲| 人人妻人人澡人人爽欧美一区| 久久久久久久电影| 国产v在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 国产二区精品| 人妻无码一区二区三区| 91精品国产91综合久久蜜臀| 超碰一区二区| 免费网站在线观看视频| 国产精品精品国产色婷婷|