青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

面對現(xiàn)實,超越自己
逆水行舟,不進(jìn)則退
posts - 269,comments - 32,trackbacks - 0

List(雙向鏈表)介紹:   

    
List是一個線性鏈表結(jié)構(gòu),它的數(shù)據(jù)由若干個節(jié)點構(gòu)成,每一個節(jié)點都包括一個信息塊(即實際存儲的數(shù)據(jù))、一個前驅(qū)指針和一個后驅(qū)指針。它無需分配指定的內(nèi)存大小且可以任意伸縮,這是因為它存儲在非連續(xù)的內(nèi)存空間中,并且由指針將有序的元素鏈接起來。

     由于其結(jié)構(gòu)的原因,list 隨機檢索的性能非常的不好,因為它不像vector 那樣直接找到元素的地址,而是要從頭一個一個的順序查找,這樣目標(biāo)元素越靠后,它的檢索時間就越長。檢索時間與目標(biāo)元素的位置成正比。

   雖然隨機檢索的速度不夠快,但是它可以迅速地在任何節(jié)點進(jìn)行插入和刪除操作。因為list 的每個節(jié)點保存著它在鏈表中的位置,插入或刪除一個元素僅對最多三個元素有所影響,不像vector 會對操作點之后的所有元素的存儲地址都有所影響,這一點是vector 不可比擬的。

List 的特點:

(1) 不使用連續(xù)的內(nèi)存空間這樣可以隨意地進(jìn)行動態(tài)操作;

(2) 可以在內(nèi)部任何位置快速地插入或刪除,當(dāng)然也可以在兩端進(jìn)行pushpop

(3) 不能進(jìn)行內(nèi)部的隨機訪問,即不支持[ ] 操作符和vector.at()

Lists將元素按順序儲存在鏈表中,與向量(vectors)相比,它允許快速的插入和刪除,但是隨機訪問卻比較慢.

1.assign() list賦值

   語法:

     void assign( input_iterator start, input_iterator end );

     //以迭代器startend指示的范圍為list賦值

     void assign( size_type num, const TYPE &val );

     //賦值num個以val為值的元素。

2.back() 返回最后一個元素的引用

3.begin() 返回指向第一個元素的迭代器

4.clear() 刪除所有元素

5.empty() 如果list是空的則返回true

6.end() 返回末尾的迭代器

7.erase() 刪除一個元素

   語法:

     iterator erase( iterator loc );//刪除loc處的元素

     iterator erase( iterator start, iterator end ); //刪除startend之間的元素

8.front() 返回第一個元素的引用

9.get_allocator() 返回list的配置器

10.insert() 插入一個元素到list

   語法:

     iterator insert( iterator loc, const TYPE &val );

     //在指定位置loc前插入值為val的元素,返回指向這個元素的迭代器,

     void insert( iterator loc, size_type num, const TYPE &val );

     //定位置loc前插入num個值為val的元素

     void insert( iterator loc, input_iterator start, input_iterator end );

     //在指定位置loc前插入?yún)^(qū)間[start, end)的所有元素

11.max_size() 返回list能容納的最大元素數(shù)量

12.merge() 合并兩個list

   語法:

     void merge( list &lst );//把自己和lst鏈表連接在一起

     void merge( list &lst, Comp compfunction );

     //指定compfunction,則將指定函數(shù)作為比較的依據(jù)。

13.pop_back() 刪除最后一個元素

14.pop_front() 刪除第一個元素

15.push_back() list的末尾添加一個元素

16.push_front() list的頭部添加一個元素

17.rbegin() 返回指向第一個元素的逆向迭代器

18.remove() list刪除元素

   語法:

     void remove( const TYPE &val );

     //刪除鏈表中所有值為val的元素

19.remove_if() 按指定條件刪除元素

20.rend() 指向list末尾的逆向迭代器

21.resize() 改變list的大小

   語法:

     void resize( size_type num, TYPE val );

     //list的大小改變到num。被加入的多余的元素都被賦值為val22.

22.reverse() list的元素倒轉(zhuǎn)

23.size() 返回list中的元素個數(shù)

24.sort() list排序

   語法:

     void sort();//為鏈表排序,默認(rèn)是升序

     void sort( Comp compfunction );//采用指定函數(shù)compfunction來判定兩個元素的大小。

25.splice() 合并兩個list

   語法:

     void splice( iterator pos, list &lst );//lst連接到pos的位置

     void splice( iterator pos, list &lst, iterator del );//插入lstdel所指元素到現(xiàn)鏈表的pos

     void splice( iterator pos, list &lst, iterator start, iterator end );//startend指定范圍。

26.swap() 交換兩個list

   語法:

     void swap( list &lst );// 交換lst和現(xiàn)鏈表中的元素

27.unique() 刪除list中重復(fù)的元素

   語法:

     void unique();//刪除鏈表中所有重復(fù)的元素

     void unique( BinPred pr );// 指定pr,則使用pr來判定是否刪除。


以下轉(zhuǎn)自:http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html
例子:

 

  1 // ------------------------------------------------------------------------- 
  2 //    文件名        :     list1.cpp
  3 //    創(chuàng)建者        :    方煜寬
  4 //   郵箱        :  fangyukuan@gmail.com
  5 //    創(chuàng)建時間    :    2010-9-19 15:58
  6 //    功能描述    :    STL中的list就是一雙向鏈表,可高效地進(jìn)行插入刪除元素。
  7 //                
  8 // -------------------------------------------------------------------------
  9 #include "stdafx.h"
 10 #include <iostream>
 11 #include <list>
 12 using namespace std;
 13 
 14 list<int> g_list1;
 15 list<int> g_list2;
 16 
 17 //////////////////////////////////////////////////////////////////////////
 18 
 19 // 初始化全局鏈表
 20 void InitList()
 21 {
 22     //  push_back()增加一元素到鏈表尾
 23     g_list1.push_back(1);
 24     g_list1.push_back(2);
 25     g_list1.push_back(3);
 26 
 27     // push_front()增加一元素到鏈表頭
 28     g_list2.push_front(6);
 29     g_list2.push_front(5);
 30     g_list2.push_front(4);
 31 }
 32 
 33 // 輸出一個鏈表
 34 void ShowList(list<int>& listTemp)
 35 {
 36     //  size()返回鏈表中元素個數(shù)
 37     cout << listTemp.size() << endl;
 38 
 39     for (list<int>::iterator it = listTemp.begin(); it != listTemp.end(); ++it)
 40     {
 41         cout << *it << ' ';
 42     }
 43     cout << endl;
 44 }
 45 
 46 //////////////////////////////////////////////////////////////////////////
 47 
 48 // 構(gòu)造函數(shù),空鏈表
 49 void constructor_test0()
 50 {
 51     list<int> listTemp;
 52     cout << listTemp.size() << endl;
 53 }
 54 
 55 // 構(gòu)造函數(shù),建一個含三個默認(rèn)值是0的元素的鏈表
 56 void constructor_test1()
 57 {
 58     list<int> listTemp(3);
 59     ShowList(listTemp);
 60 }
 61 
 62 // 構(gòu)造函數(shù),建一個含五個元素的鏈表,值都是1
 63 void constructor_test2()
 64 {
 65     list<int> listTemp(51);
 66     ShowList(listTemp);
 67 }
 68 
 69 // 構(gòu)造函數(shù),建一個g_list1的copy鏈表
 70 void constructor_test3()
 71 {
 72     list<int> listTemp(g_list1);
 73     ShowList(listTemp);
 74 }
 75 
 76 // 構(gòu)造函數(shù),listTemp含g_list1一個區(qū)域的元素[_First, _Last)
 77 void constructor_test4()
 78 {
 79     list<int> listTemp(g_list1.begin(), g_list1.end());
 80     ShowList(listTemp);
 81 }
 82 
 83 // assign()分配值,有兩個重載
 84 // template <class InputIterator>
 85 // void assign ( InputIterator first, InputIterator last );
 86 // void assign ( size_type n, const T& u );
 87 void assign_test()
 88 {
 89     list<int> listTemp(51);
 90     ShowList(listTemp);
 91 
 92     listTemp.assign(43);
 93     ShowList(listTemp);
 94 
 95     listTemp.assign(++g_list1.begin(), g_list1.end());
 96     ShowList(listTemp);
 97 }
 98 
 99 // operator=
100 void operator_equality_test()
101 {
102     g_list1 = g_list2;
103     ShowList(g_list1);
104     ShowList(g_list2);
105 }
106 
107 // front()返回第一個元素的引用
108 void front_test7()
109 {
110     cout << g_list1.front() << endl;
111 }
112 
113 // back()返回最后一元素的引用
114 void back_test()
115 {
116     cout << g_list1.back() << endl;
117 }
118 
119 // begin()返回第一個元素的指針(iterator)
120 void begin_test()
121 {
122     list<int>::iterator it1 = g_list1.begin();
123     cout << *++it1 << endl;
124 
125     list<int>::const_iterator it2 = g_list1.begin();
126     it2++;
127     // (*it2)++;    //     *it2 為const 不用修改
128     cout << *it2 << endl;    
129 
130 }
131 
132 // end()返回 [最后一個元素的下一位置的指針] (list為空時end()= begin())
133 void end_test()
134 {
135     list<int>::iterator it  = g_list1.end();    // 注意是:最后一個元素的下一位置的指針
136     --it;
137     cout << *it << endl;
138 }
139 
140 //  rbegin()返回鏈表最后一元素的后向指針
141 void rbegin_test()
142 {
143     list<int>::reverse_iterator it = g_list1.rbegin();
144     for (; it != g_list1.rend(); ++it)
145     {
146         cout << *it << ' ';
147     }
148     cout << endl;
149 }
150 
151 //  rend()返回鏈表第一元素的下一位置的后向指針
152 void rend_test()
153 {
154     list<int>::reverse_iterator it = g_list1.rend();
155     --it;
156     cout << *it << endl;
157 }
158 
159 // push_back()增加一元素到鏈表尾
160 void push_back_test()
161 {
162     ShowList(g_list1);
163     g_list1.push_back(4);
164     ShowList(g_list1);
165 }
166 
167 // push_front()增加一元素到鏈表頭 
168 void push_front_test()
169 {
170     ShowList(g_list1);
171     g_list1.push_front(4);
172     ShowList(g_list1);
173 }
174 
175 // pop_back()刪除鏈表尾的一個元素
176 void pop_back_test()
177 {
178     ShowList(g_list1);
179     cout << endl;
180 
181     g_list1.pop_back();
182     ShowList(g_list1);
183 
184 }
185 
186 // pop_front()刪除鏈表頭的一元素
187 void pop_front_test()
188 {
189     ShowList(g_list1);
190     cout << endl;
191 
192     g_list1.pop_front();
193     ShowList(g_list1);
194 }
195 
196 // clear()刪除所有元素
197 void clear_test()
198 {
199     ShowList(g_list1);
200     g_list1.clear();
201     ShowList(g_list1);
202 }
203 
204 // erase()刪除一個元素或一個區(qū)域的元素(兩個重載函數(shù))
205 void erase_test()
206 {
207     ShowList(g_list1);
208     g_list1.erase(g_list1.begin());
209     ShowList(g_list1);
210 
211     cout << endl;
212 
213     ShowList(g_list2);
214     g_list2.erase(++g_list2.begin(), g_list2.end());
215     ShowList(g_list2);
216 }
217 
218 // remove()刪除鏈表中匹配值的元素(匹配元素全部刪除)
219 void remove_test()
220 {
221     ShowList(g_list1);
222     g_list1.push_back(1);
223     ShowList(g_list1);
224 
225     g_list1.remove(1);
226     ShowList(g_list1);
227 }
228 
229 bool myFun(const int& value) { return (value < 2); }
230 // remove_if()刪除條件滿足的元素(會遍歷一次鏈表)
231 void remove_if_test()
232 {
233     ShowList(g_list1);
234     g_list1.remove_if(myFun);
235     ShowList(g_list1);
236 }
237 
238 
239 // empty()判斷是否鏈表為空
240 void empty_test()
241 {
242     list<int> listTemp;
243     if (listTemp.empty())
244         cout << "listTemp為空" << endl;
245     else
246         cout << "listTemp不為空" << endl;
247 }
248 
249 
250 //  max_size()返回鏈表最大可能長度:1073741823
251 void max_size_test()
252 {
253     list<int>::size_type nMax = g_list1.max_size();
254     cout << nMax << endl;
255 }
256 
257 
258 // resize()重新定義鏈表長度(兩重載函數(shù)):
259 void resize_test()
260 {
261     ShowList(g_list1);
262     g_list1.resize(9);        // 用默認(rèn)值填補
263     ShowList(g_list1);
264     cout << endl;
265 
266     ShowList(g_list2);
267     g_list2.resize(951);    // 用指定值填補
268     ShowList(g_list2);
269 }
270 
271 // reverse()反轉(zhuǎn)鏈表
272 void reverse_test()
273 {
274     ShowList(g_list1);
275     g_list1.reverse();
276     ShowList(g_list1);
277 }
278 
279 
280 // sort()對鏈表排序,默認(rèn)升序(兩個重載函數(shù))
281 void sort_test()
282 {
283     list<int> listTemp;
284     listTemp.push_back(9);
285     listTemp.push_back(3);
286     listTemp.push_back(5);
287     listTemp.push_back(1);
288     listTemp.push_back(4);
289     listTemp.push_back(3);
290 
291     ShowList(listTemp);
292     listTemp.sort();
293     ShowList(listTemp);
294 
295     listTemp.sort(greater<int>());
296     ShowList(listTemp);
297 }
298 
299 // merge()合并兩個升序序鏈表并使之成為另一個升序.
300 void merge_test1()
301 {
302     list<int> listTemp2;
303     listTemp2.push_back(3);
304     listTemp2.push_back(4);
305 
306     list<int> listTemp3;
307     listTemp3.push_back(9);
308     listTemp3.push_back(10);
309 
310     ShowList(listTemp2);
311     cout << endl;
312     ShowList(listTemp3);
313     cout << endl;
314 
315     listTemp2.merge(listTemp3);
316     ShowList(listTemp2);
317 }
318 
319 
320 bool myCmp (int first, int second)
321 return ( int(first)>int(second) ); }
322 
323 // merge()合并兩個降序鏈表并使之成為另一個降序.
324 void merge_test2()
325 {
326     list<int> listTemp2;
327     listTemp2.push_back(4);
328     listTemp2.push_back(3);
329 
330     list<int> listTemp3;
331     listTemp3.push_back(10);
332     listTemp3.push_back(9);
333 
334     ShowList(listTemp2);
335     cout << endl;
336     ShowList(listTemp3);
337     cout << endl;
338 
339     // listTemp2.merge(listTemp3, greater<int>());    // 第二個參數(shù)可以是自己定義的函數(shù)如下
340     listTemp2.merge(listTemp3, myCmp);
341     ShowList(listTemp2);
342 }
343 
344 // splice()對兩個鏈表進(jìn)行結(jié)合(三個重載函數(shù)),結(jié)合后第二個鏈表清空
345 // void splice ( iterator position, list<T,Allocator>& x );
346 // void splice ( iterator position, list<T,Allocator>& x, iterator i );
347 // void splice ( iterator position, list<T,Allocator>& x, iterator first, iterator last );
348 void splice_test()
349 {
350     list<int> listTemp1(g_list1);
351     list<int> listTemp2(g_list2);
352 
353     ShowList(listTemp1);
354     ShowList(listTemp2);
355     cout << endl;
356     
357     // 
358     listTemp1.splice(++listTemp1.begin(), listTemp2);
359     ShowList(listTemp1);
360     ShowList(listTemp2);
361 
362     // 
363     listTemp1.assign(g_list1.begin(), g_list1.end());
364     listTemp2.assign(g_list2.begin(), g_list2.end());
365     listTemp1.splice(++listTemp1.begin(), listTemp2, ++listTemp2.begin());
366     ShowList(listTemp1);
367     ShowList(listTemp2);
368 
369     // 
370     listTemp1.assign(g_list1.begin(), g_list1.end());
371     listTemp2.assign(g_list2.begin(), g_list2.end());
372     listTemp1.splice(++listTemp1.begin(), listTemp2, ++listTemp2.begin(), listTemp2.end());
373     ShowList(listTemp1);
374     ShowList(listTemp2);
375 
376 }
377 
378 //  insert()在指定位置插入一個或多個元素(三個重載函數(shù))
379 // iterator insert ( iterator position, const T& x );
380 // void insert ( iterator position, size_type n, const T& x );
381 // template <class InputIterator>
382 // void insert ( iterator position, InputIterator first, InputIterator last );
383 void insert_test()
384 {
385     list<int> listTemp1(g_list1);
386     ShowList(listTemp1);
387     listTemp1.insert(listTemp1.begin(), 51);
388     ShowList(listTemp1);
389     cout << endl;
390 
391     list<int> listTemp2(g_list1);
392     ShowList(listTemp2);
393     listTemp2.insert(listTemp2.begin(), 951);
394     ShowList(listTemp2);
395     cout << endl;
396 
397     list<int> listTemp3(g_list1);
398     ShowList(listTemp3);
399     listTemp3.insert(listTemp3.begin(), g_list2.begin(), g_list2.end());
400     ShowList(listTemp3);
401 
402 }
403 
404 // swap()交換兩個鏈表(兩個重載)
405 void swap_test()
406 {
407     ShowList(g_list1);
408     ShowList(g_list2);
409     cout << endl;
410 
411     g_list1.swap(g_list2);
412     ShowList(g_list1);
413     ShowList(g_list2);
414 }
415 
416 bool same_integral_part (double first, double second)
417 return ( int(first)==int(second) ); }
418 
419 // unique()刪除相鄰重復(fù)元素
420 void unique_test()
421 {
422     list<int> listTemp;
423     listTemp.push_back(1);
424     listTemp.push_back(1);
425     listTemp.push_back(4);
426     listTemp.push_back(3);
427     listTemp.push_back(5);
428     listTemp.push_back(1);
429     list<int> listTemp2(listTemp);
430     
431     ShowList(listTemp);
432     listTemp.unique();    // 不會刪除不相鄰的相同元素
433     ShowList(listTemp);
434     cout << endl;
435 
436     listTemp.sort();
437     ShowList(listTemp);
438     listTemp.unique();
439     ShowList(listTemp);
440     cout << endl;
441 
442     listTemp2.sort();
443     ShowList(listTemp2);
444     listTemp2.unique(same_integral_part);
445     ShowList(listTemp2);
446 
447 }
448 
449 // 主函數(shù),下面要測試哪個就把那個注釋去掉即可
450 int _tmain(int argc, _TCHAR* argv[])
451 {
452     InitList();
453 //     ShowList(g_list1);
454 //     ShowList(g_list2);
455 
456 //     constructor_test0();
457 //     constructor_test1();
458 //     constructor_test2();
459 //     constructor_test3();
460 //     constructor_test4();
461 //     assign_test();
462 //     operator_equality_test();
463 //     front_test7();
464 //     back_test();
465 //     begin_test();
466 //     end_test();
467 //     rbegin_test();
468 //     rend_test();
469 //     push_back_test();
470 //     push_front_test();
471 //     pop_back_test();
472 //     pop_front_test();
473 //     clear_test();
474 //     erase_test();
475 //      remove_test();
476 //     remove_if_test();
477 //     empty_test();
478 //     max_size_test();
479 //     resize_test();
480 //     reverse_test();
481 //     sort_test();
482 //     merge_test1();
483 //     merge_test2();
484 //     splice_test();
485 //     insert_test();
486 //     swap_test();
487 //     unique_test();
488     return 0;
489 }

posted on 2012-06-04 15:50 王海光 閱讀(4115) 評論(0)  編輯 收藏 引用 所屬分類: STL
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美亚洲系列| 在线欧美三区| 狠狠网亚洲精品| 国产视频观看一区| 国内偷自视频区视频综合| 国产一区二区三区av电影 | 一区二区精品国产| 亚洲第一福利社区| 亚洲人午夜精品| 一本色道久久综合狠狠躁篇的优点| 亚洲福利小视频| 亚洲午夜国产成人av电影男同| 亚洲精品系列| 性欧美video另类hd性玩具| 欧美亚洲免费高清在线观看| 久久久久一区二区| 亚洲国产成人不卡| 欧美激情中文不卡| 亚洲一区不卡| 欧美va天堂| 国产视频不卡| 先锋影院在线亚洲| 亚洲成人在线网站| 亚洲欧美大片| 欧美性事免费在线观看| 狠狠爱成人网| 欧美在线黄色| 在线亚洲欧美视频| 久久久久久久久久久久久女国产乱| 卡一卡二国产精品| 午夜精品久久99蜜桃的功能介绍| 欧美xxxx在线观看| 亚洲电影免费| 欧美jizz19性欧美| 久久久亚洲人| 韩日在线一区| 欧美成人久久| 欧美99久久| 一区二区精品在线| 日韩视频中文| 国产精品亚洲成人| 久久国产精品毛片| 久久精品国产精品亚洲精品| 国产日韩一区二区三区在线| 久久激情五月婷婷| 欧美主播一区二区三区美女 久久精品人 | 欧美性猛交xxxx乱大交蜜桃| 亚洲区中文字幕| 亚洲精品在线视频观看| 欧美成人自拍| 欧美一区二区三区久久精品| 欧美一区二区在线| 亚洲人成免费| 亚洲影院在线观看| 在线成人亚洲| 亚洲校园激情| 亚洲黄色一区| 午夜精品999| 欧美屁股在线| 久久久久久一区| 欧美日韩视频在线一区二区 | 女同性一区二区三区人了人一| 久久久噜噜噜久久中文字免| 亚洲一区自拍| 欧美日韩免费精品| 久久综合伊人77777蜜臀| 国产精品毛片a∨一区二区三区|国| 欧美亚洲日本一区| 欧美三区视频| 亚洲免费av网站| 极品少妇一区二区三区| 亚洲午夜在线观看| 99在线热播精品免费| 免费影视亚洲| 欧美黄色小视频| 亚洲国产va精品久久久不卡综合| 久久国产88| 欧美成人伊人久久综合网| 黄色成人av| 久久在线视频| 亚洲成色777777在线观看影院| 经典三级久久| 久久综合福利| 欧美韩日一区| 亚洲一区二区三区四区中文| 国产精品久久久久久久久婷婷| 亚洲免费婷婷| 亚洲第一毛片| 亚洲免费视频网站| 国产在线乱码一区二区三区| 久久午夜av| 正在播放亚洲一区| 美女视频一区免费观看| 欧美精品在线视频观看| 亚洲精品中文字幕在线| 性高湖久久久久久久久| 国产在线视频欧美| 欧美日韩八区| 久久久精彩视频| 亚洲欧美卡通另类91av| 久久综合九色欧美综合狠狠| 日韩一级大片| 亚洲国产精品久久久久婷婷老年 | 在线成人免费视频| 欧美日韩一区二| 欧美成人免费在线| 久久久精品国产一区二区三区| 日韩视频三区| aa亚洲婷婷| 亚洲精品在线观看免费| 另类图片国产| 久久综合色8888| 老司机精品视频网站| 久久精品1区| 久久蜜桃精品| 美女精品在线观看| 欧美黄色精品| 亚洲高清视频在线观看| 免费亚洲电影在线观看| 久久综合久久久| 久久在线免费| 亚洲精品国产欧美| 妖精成人www高清在线观看| 日韩亚洲精品在线| 亚洲一区二区影院| 欧美一级视频| 欧美不卡视频一区发布| 欧美日韩免费视频| 国产日韩在线不卡| 亚洲第一页自拍| 欧美日韩亚洲免费| 欧美成人有码| 国产色视频一区| 亚洲电影专区| 欧美一区二区三区的| 久久亚洲国产精品日日av夜夜| 久久久国产成人精品| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美一区二区成人| 久久久精品国产免大香伊 | 欧美在线观看天堂一区二区三区| 久久精品青青大伊人av| 91久久一区二区| 欧美在线亚洲一区| 欧美婷婷久久| 亚洲电影成人| 久久久人成影片一区二区三区| 亚洲毛片av| 欧美另类高清视频在线| 国产在线观看91精品一区| 亚洲私拍自拍| 亚洲视频电影图片偷拍一区| 欧美国产乱视频| 亚洲黄色免费电影| 欧美jjzz| 欧美日韩伊人| 亚洲欧美另类国产| 午夜视频一区| 在线日本高清免费不卡| 欧美xxx成人| 欧美精品久久99| 亚洲综合第一| 久久精品视频在线| 最新高清无码专区| 一区二区国产日产| 亚洲专区在线视频| 亚洲欧洲日本在线| 免费欧美网站| 欧美日韩在线精品一区二区三区| 最近中文字幕日韩精品| 一区二区三区不卡视频在线观看| 国产精品区一区| 欧美成人日韩| 国产精品免费看片| 欧美ab在线视频| 国产日本欧美视频| 亚洲人成网站777色婷婷| 国产精品综合不卡av| 亚洲国产成人在线| 国产在线播放一区二区三区| 亚洲精品一区二区三区樱花| 国产永久精品大片wwwapp| 亚洲精品国偷自产在线99热| 狠狠色狠狠色综合人人| 亚洲资源在线观看| 亚洲自拍16p| 欧美日韩国产黄| 欧美激情在线免费观看| 伊人蜜桃色噜噜激情综合| 亚洲淫片在线视频| 午夜精品久久久久久久99樱桃| 欧美jjzz| 艳女tv在线观看国产一区| av成人免费| 欧美午夜一区二区福利视频| 日韩视频一区二区| 香蕉久久国产| 黑人巨大精品欧美一区二区小视频| 亚洲欧美美女|