锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久国产AVJUST麻豆,亚洲午夜久久久久久久久电影网,天天综合久久久网http://www.shnenglu.com/lovefeel2004/category/11594.html涓撴敞C/C++錛孡inuxzh-cnWed, 23 Jun 2010 06:58:17 GMTWed, 23 Jun 2010 06:58:17 GMT60STL vector 瀹瑰櫒浠嬬粛http://www.shnenglu.com/lovefeel2004/archive/2010/06/23/118556.html騫芥ⅵ鏂板獎騫芥ⅵ鏂板獎Wed, 23 Jun 2010 05:56:00 GMThttp://www.shnenglu.com/lovefeel2004/archive/2010/06/23/118556.htmlhttp://www.shnenglu.com/lovefeel2004/comments/118556.htmlhttp://www.shnenglu.com/lovefeel2004/archive/2010/06/23/118556.html#Feedback0http://www.shnenglu.com/lovefeel2004/comments/commentRss/118556.htmlhttp://www.shnenglu.com/lovefeel2004/services/trackbacks/118556.html浠嬬粛

榪欑瘒鏂囩珷鐨勭洰鐨勬槸涓轟簡浠嬬粛std::vector錛屽浣曟伆褰撳湴浣跨敤瀹冧滑鐨勬垚鍛樺嚱鏁扮瓑鎿嶄綔銆傛湰鏂囦腑榪樿璁轟簡鏉′歡鍑芥暟鍜屽嚱鏁版寚閽堝湪榪唬綆楁硶涓嬌鐢紝濡傚湪remove_if()鍜?/span>for_each()涓殑浣跨敤銆傞氳繃闃呰榪欑瘒鏂囩珷璇昏呭簲璇ヨ兘澶熸湁鏁堝湴浣跨敤vector瀹瑰櫒錛岃屼笖搴旇涓嶄細鍐嶅幓浣跨敤C綾誨瀷鐨勫姩鎬佹暟緇勪簡銆?/span>

 

Vector鎬昏

vector鏄?/span>C++鏍囧噯妯℃澘搴撲腑鐨勯儴鍒嗗唴瀹癸紝瀹冩槸涓涓鍔熻兘鐨勶紝鑳藉鎿嶄綔澶氱鏁版嵁緇撴瀯鍜岀畻娉曠殑妯℃澘綾誨拰鍑芥暟搴撱?/span>vector涔嬫墍浠ヨ璁や負鏄竴涓鍣紝鏄洜涓哄畠鑳藉鍍忓鍣ㄤ竴鏍峰瓨鏀懼悇縐嶇被鍨嬬殑瀵硅薄錛岀畝鍗曞湴璇達紝vector鏄竴涓兘澶熷瓨鏀句換鎰忕被鍨嬬殑鍔ㄦ佹暟緇勶紝鑳藉澧炲姞鍜屽帇緙╂暟鎹?/span>

涓轟簡鍙互浣跨敤vector錛屽繀欏誨湪浣犵殑澶存枃浠朵腑鍖呭惈涓嬮潰鐨勪唬鐮侊細

#include <vector>

 

vector灞炰簬std鍛藉悕鍩熺殑錛屽洜姝ら渶瑕侀氳繃鍛藉悕闄愬畾錛屽涓嬪畬鎴愪綘鐨勪唬鐮侊細

using std::vector;

vector<int> vInts;

 

鎴栬呰繛鍦ㄤ竴璧鳳紝浣跨敤鍏ㄥ悕錛?/span>

std::vector<int> vInts;

 

寤鴻浣跨敤鍏ㄥ眬鐨勫懡鍚嶅煙鏂瑰紡錛?/span>

using namespace std;

 

鍦ㄥ悗闈㈢殑鎿嶄綔涓叏灞鐨勫懡鍚嶅煙鏂瑰紡浼氶犳垚涓浜涢棶棰樸?/span>vector瀹瑰櫒鎻愪緵浜嗗緢澶氭帴鍙o紝鍦ㄤ笅闈㈢殑琛ㄤ腑鍒楀嚭vector鐨勬垚鍛樺嚱鏁板拰鎿嶄綔銆?/span>

 

Vector鎴愬憳鍑芥暟

鍑芥暟

琛ㄨ堪

c.assign(beg,end)

c.assign(n,elem)

灝?/span>[beg; end)鍖洪棿涓殑鏁版嵁璧嬪肩粰c銆?/span>

灝?/span>n涓?/span>elem鐨勬嫹璐濊祴鍊肩粰c銆?/span>

c.at(idx)

浼犲洖绱㈠紩idx鎵鎸囩殑鏁版嵁錛屽鏋?/span>idx瓚婄晫錛屾姏鍑?/span>out_of_range銆?/span>

c.back()

浼犲洖鏈鍚庝竴涓暟鎹紝涓嶆鏌ヨ繖涓暟鎹槸鍚﹀瓨鍦ㄣ?/span>

c.begin()

浼犲洖榪唬鍣ㄩ噸鐨勫彲涓涓暟鎹?/span>

c.capacity()

榪斿洖瀹瑰櫒涓暟鎹釜鏁般?/span>

c.clear()

縐婚櫎瀹瑰櫒涓墍鏈夋暟鎹?/span>

c.empty()

鍒ゆ柇瀹瑰櫒鏄惁涓虹┖銆?/span>

c.end()

鎸囧悜榪唬鍣ㄤ腑鐨勬渶鍚庝竴涓暟鎹湴鍧銆?/span>

c.erase(pos)

c.erase(beg,end)

鍒犻櫎pos浣嶇疆鐨勬暟鎹紝浼犲洖涓嬩竴涓暟鎹殑浣嶇疆銆?/span>

鍒犻櫎[beg,end)鍖洪棿鐨勬暟鎹紝浼犲洖涓嬩竴涓暟鎹殑浣嶇疆銆?/span>

c.front()

浼犲洖鍦頒竴涓暟鎹?/span>

get_allocator

浣跨敤鏋勯犲嚱鏁拌繑鍥炰竴涓嫹璐濄?/span>

c.insert(pos,elem)

c.insert(pos,n,elem)

c.insert(pos,beg,end)

鍦?/span>pos浣嶇疆鎻掑叆涓涓?/span>elem鎷瘋礉錛屼紶鍥炴柊鏁版嵁浣嶇疆銆?/span>

鍦?/span>pos浣嶇疆鎻掑叆n涓?/span>elem鏁版嵁銆傛棤榪斿洖鍊箋?/span>

鍦?/span>pos浣嶇疆鎻掑叆鍦?/span>[beg,end)鍖洪棿鐨勬暟鎹傛棤榪斿洖鍊箋?/span>

c.max_size()

榪斿洖瀹瑰櫒涓渶澶ф暟鎹殑鏁伴噺銆?/span>

c.pop_back()

鍒犻櫎鏈鍚庝竴涓暟鎹?/span>

c.push_back(elem)

鍦ㄥ熬閮ㄥ姞鍏ヤ竴涓暟鎹?/span>

c.rbegin()

浼犲洖涓涓嗗悜闃熷垪鐨勭涓涓暟鎹?/span>

c.rend()

浼犲洖涓涓嗗悜闃熷垪鐨勬渶鍚庝竴涓暟鎹殑涓嬩竴涓綅緗?/span>

c.resize(num)

閲嶆柊鎸囧畾闃熷垪鐨勯暱搴︺?/span>

c.reserve()

淇濈暀閫傚綋鐨勫閲忋?/span>

c.size()

榪斿洖瀹瑰櫒涓疄闄呮暟鎹殑涓暟銆?/span>

c1.swap(c2)

swap(c1,c2)

灝?/span>c1鍜?/span>c2鍏冪礌浜掓崲銆?/span>

鍚屼笂鎿嶄綔銆?/span>

vector<Elem> c

vector <Elem> c1(c2)

vector <Elem> c(n)

vector <Elem> c(n, elem)

vector <Elem> c(beg,end)

c.~ vector <Elem>()

鍒涘緩涓涓┖鐨?/span>vector銆?/span>

澶嶅埗涓涓?/span>vector銆?/span>

鍒涘緩涓涓?/span>vector錛屽惈鏈?/span>n涓暟鎹紝鏁版嵁鍧囧凡緙虹渷鏋勯犱駭鐢?/span>銆?/span>

鍒涘緩涓涓惈鏈?/span>n涓?/span>elem鎷瘋礉鐨?/span>vector銆?/span>

鍒涘緩涓涓互[beg;end)鍖洪棿鐨?/span>vector銆?/span>

閿姣佹墍鏈夋暟鎹紝閲婃斁鍐呭瓨銆?/span>

 

Vector鎿嶄綔

鍑芥暟

鎻忚堪

operator[]

榪斿洖瀹瑰櫒涓寚瀹氫綅緗殑涓涓紩鐢ㄣ?/span>

 

鍒涘緩涓涓?/span>vector

vector瀹瑰櫒鎻愪緵浜嗗縐嶅垱寤烘柟娉曪紝涓嬮潰浠嬬粛鍑犵甯哥敤鐨勩?/span>

鍒涘緩涓涓?/span>Widget綾誨瀷鐨勭┖鐨?/span>vector瀵硅薄錛?/span>

vector<Widget> vWidgets;

//     ------

//      |

//      |- Since vector is a container, its member functions

//         operate on iterators and the container itself so

//         it can hold objects of any type.

 

鍒涘緩涓涓寘鍚?/span>500涓?/span>Widget綾誨瀷鏁版嵁鐨?/span>vector錛?/span>

vector<Widget> vWidgets(500);

 

鍒涘緩涓涓寘鍚?/span>500涓?/span>Widget綾誨瀷鏁版嵁鐨?/span>vector錛屽茍涓旈兘鍒濆鍖栦負0錛?/span>

vector<Widget> vWidgets(500, Widget(0));

 

鍒涘緩涓涓?/span>Widget鐨勬嫹璐濓細

vector<Widget> vWidgetsFromAnother(vWidgets);

 

鍚?/span>vector娣誨姞涓涓暟鎹?/span>

vector娣誨姞鏁版嵁鐨勭己鐪佹柟娉曟槸push_back()銆?/span>push_back()鍑芥暟琛ㄧず灝嗘暟鎹坊鍔犲埌vector鐨勫熬閮紝騫舵寜闇瑕佹潵鍒嗛厤鍐呭瓨銆備緥濡傦細鍚?/span>vector<Widget>涓坊鍔?/span>10涓暟鎹紝闇瑕佸涓嬬紪鍐欎唬鐮侊細

for(int i= 0;i<10; i++)

    vWidgets.push_back(Widget(i));

 

鑾峰彇vector涓埗瀹氫綅緗殑鏁版嵁

寰堝鏃跺欐垜浠笉蹇呰鐭ラ亾vector閲岄潰鏈夊灝戞暟鎹紝vector閲岄潰鐨勬暟鎹槸鍔ㄦ佸垎閰嶇殑錛屼嬌鐢?/span>push_back()鐨勪竴緋誨垪鍒嗛厤絀洪棿甯稿父鍐沖畾浜庢枃浠舵垨涓浜涙暟鎹簮銆傚鏋滀綘鎯崇煡閬?/span>vector瀛樻斁浜嗗灝戞暟鎹紝浣犲彲浠ヤ嬌鐢?/span>empty()銆傝幏鍙?/span>vector鐨勫ぇ灝忥紝鍙互浣跨敤size()銆備緥濡傦紝濡傛灉浣犳兂鑾峰彇涓涓?/span>vector v鐨勫ぇ灝忥紝浣嗕笉鐭ラ亾瀹冩槸鍚︿負絀猴紝鎴栬呭凡緇忓寘鍚簡鏁版嵁錛屽鏋滀負絀烘兂璁劇疆涓?/span>-1錛屼綘鍙互浣跨敤涓嬮潰鐨勪唬鐮佸疄鐜幫細

int nSize = v.empty() ? -1 : static_cast<int>(v.size());

 

璁塊棶vector涓殑鏁版嵁

浣跨敤涓ょ鏂規硶鏉ヨ闂?/span>vector銆?/span>

1銆?span>   vector::at()

2銆?span>   vector::operator[]

operator[]涓昏鏄負浜嗕笌C璇█榪涜鍏煎銆傚畠鍙互鍍?/span>C璇█鏁扮粍涓鏍鋒搷浣溿備絾at()鏄垜浠殑棣栭夛紝鍥犱負at()榪涜浜嗚竟鐣屾鏌ワ紝濡傛灉璁塊棶瓚呰繃浜?/span>vector鐨勮寖鍥達紝灝嗘姏鍑轟竴涓緥澶栥傜敱浜?/span>operator[]瀹規槗閫犳垚涓浜涢敊璇紝鎵鏈夋垜浠緢灝戠敤瀹冿紝涓嬮潰榪涜楠岃瘉涓涓嬶細

鍒嗘瀽涓嬮潰鐨勪唬鐮侊細

vector<int> v;

v.reserve(10);

 

for(int i=0; i<7; i++)

    v.push_back(i);

 

try

{

 int iVal1 = v[7]; // not bounds checked - will not throw

 int iVal2 = v.at(7); // bounds checked - will throw if out of range

}

catch(const exception& e)

{

 cout << e.what();

}

 

鎴戜滑浣跨敤reserve()鍒嗛厤浜?/span>10涓?/span>int鍨嬬殑絀洪棿錛屼絾騫朵笉娌℃湁鍒濆鍖栥傚涓嬪浘鎵紺猴細


浣犲彲浠ュ湪榪欎釜浠g爜涓皾璇曚笉鍚屾潯浠訛紝瑙傚療瀹冪殑緇撴灉錛屼絾鏄棤璁轟綍鏃朵嬌鐢?/span>at()錛岄兘鏄紜殑銆?/span>

 

鍒犻櫎vector涓殑鏁版嵁

vector鑳藉闈炲父瀹規槗鍦版坊鍔犳暟鎹紝涔熻兘寰堟柟渚垮湴鍙栧嚭鏁版嵁錛屽悓鏍?/span>vector鎻愪緵浜?/span>erase()錛?/span>pop_back()錛?/span>clear()鏉ュ垹闄ゆ暟鎹紝褰撲綘鍒犻櫎鏁版嵁鐨勬椂鍊欙紝浣犲簲璇ョ煡閬撹鍒犻櫎灝鵑儴鐨勬暟鎹紝鎴栬呮槸鍒犻櫎鎵鏈夋暟鎹紝榪樻槸涓埆鐨勬暟鎹傚湪鑰冭檻鍒犻櫎絳夋搷浣滀箣鍓嶈鎴戜滑闈欎笅鏉ヨ冭檻涓涓嬪湪STL涓殑涓浜涘簲鐢ㄣ?/span>

 

Remove_if()綆楁硶

鐜板湪鎴戜滑鑰冭檻鎿嶄綔閲岄潰鐨勬暟鎹傚鏋滆浣跨敤remove_if()錛屾垜浠渶瑕佸湪澶存枃浠朵腑鍖呭惈濡備笅浠g爜錛氾細

#include <algorithm>

 

         Remove_if()鏈変笁涓弬鏁幫細

1銆?span>   iterator _First錛氭寚鍚戠涓涓暟鎹殑榪唬鎸囬拡銆?/span>

2銆?span>   iterator _Last錛氭寚鍚戞渶鍚庝竴涓暟鎹殑榪唬鎸囬拡銆?/span>

3銆?span>   predicate _Pred錛氫竴涓彲浠ュ榪唬鎿嶄綔鐨勬潯浠跺嚱鏁般?/span>

 

鏉′歡鍑芥暟

鏉′歡鍑芥暟鏄竴涓寜鐓х敤鎴峰畾涔夌殑鏉′歡榪斿洖鏄垨鍚︾殑緇撴灉錛屾槸鏈鍩烘湰鐨勫嚱鏁版寚閽堬紝鎴栬呮槸涓涓嚱鏁板璞°傝繖涓嚱鏁板璞¢渶瑕佹敮鎸佹墍鏈夌殑鍑芥暟璋冪敤鎿嶄綔錛岄噸杞?/span>operator()()鎿嶄綔銆?/span>remove_if()鏄氳繃unary_function緇ф壙涓嬫潵鐨勶紝鍏佽浼犻掓暟鎹綔涓烘潯浠躲?/span>

渚嬪錛屽亣濡備綘鎯充粠涓涓?/span>vector<CString>涓垹闄ゅ尮閰嶇殑鏁版嵁錛屽鏋滃瓧涓蹭腑鍖呭惈浜嗕竴涓鹼紝浠庤繖涓煎紑濮嬶紝浠庤繖涓肩粨鏉熴傞鍏堜綘搴旇寤虹珛涓涓暟鎹粨鏋勬潵鍖呭惈榪欎簺鏁版嵁錛岀被浼間唬鐮佸涓嬶細

#include <functional>

enum findmodes

{

 FM_INVALID = 0,

 FM_IS,

 FM_STARTSWITH,

 FM_ENDSWITH,

 FM_CONTAINS

};

typedef struct tagFindStr

{

 UINT iMode;

 CString szMatchStr;

} FindStr;

typedef FindStr* LPFINDSTR;

 

鐒跺悗澶勭悊鏉′歡鍒ゆ柇錛?/span>

class FindMatchingString

    : public std::unary_function<CString, bool>

{

   

public:

 FindMatchingString(const LPFINDSTR lpFS) : m_lpFS(lpFS) {}

   

 bool operator()(CString& szStringToCompare) const

 {

     bool retVal = false;

 

     switch(m_lpFS->iMode)

     {

     case FM_IS:

       {

         retVal = (szStringToCompare == m_lpFDD->szMatchStr);

         break;

       }

     case FM_STARTSWITH:

       {

         retVal = (szStringToCompare.Left(m_lpFDD->szMatchStr.GetLength())

               == m_lpFDD->szWindowTitle);

         break;

       }

     case FM_ENDSWITH:

       {

         retVal = (szStringToCompare.Right(m_lpFDD->szMatchStr.GetLength())

               == m_lpFDD->szMatchStr);

         break;

       }

     case FM_CONTAINS:

       {

         retVal = (szStringToCompare.Find(m_lpFDD->szMatchStr) != -1);

         break;

       }

     }

       

     return retVal;

 }

       

private:

    LPFINDSTR m_lpFS;

};

 

閫氳繃榪欎釜鎿嶄綔浣犲彲浠ヤ粠vector涓湁鏁堝湴鍒犻櫎鏁版嵁錛?/span>

// remove all strings containing the value of

// szRemove from vector<CString> vs.

 

FindStr fs;

fs.iMode = FM_CONTAINS;

fs.szMatchStr = szRemove;

 

vs.erase(std::remove_if(vs.begin(), vs.end(), FindMatchingString(&fs)), vs.end());

 

Remove_if()鑳藉仛浠涔堬紵

浣犲彲鑳戒細鐤戞儜錛屽浜庝笂闈㈤偅涓緥瀛愬湪璋冪敤remove_if()鐨勬椂鍊欒繕瑕佷嬌鐢?/span>erase()鍛紵榪欐槸鍥犱負澶у騫朵笉鐔熸倝STL涓殑綆楁硶銆?/span>Remove(),remove_if()絳夋墍鏈夌殑縐誨嚭鎿嶄綔閮芥槸寤虹珛鍦ㄤ竴涓凱浠h寖鍥翠笂鐨勶紝閭d箞涓嶈兘鎿嶄綔瀹瑰櫒涓殑鏁版嵁銆傛墍浠ュ湪浣跨敤remove_if()錛屽疄闄呬笂鎿嶄綔鐨勬椂瀹瑰櫒閲屾暟鎹殑涓婇潰鐨勩傛濊冧笂闈㈢殑渚嬪瓙錛?/span>

1銆?span>   szRemove = “o”.

2銆?span>   vs瑙佷笅闈㈠浘琛ㄤ腑鐨勬樉紺恒?br>

瑙傚療榪欎釜緇撴灉錛屾垜浠彲浠ョ湅鍒?/span>remove_if()瀹為檯涓婃槸鏍規嵁鏉′歡瀵硅凱浠e湴鍧榪涜浜嗕慨鏀癸紝鍦ㄦ暟鎹殑鍚庨潰瀛樺湪涓浜涙畫浣欑殑鏁版嵁錛岄偅浜涢渶瑕佸垹闄ょ殑鏁版嵁銆傚墿涓嬬殑鏁版嵁鐨勪綅緗彲鑳戒笉鏄師鏉ョ殑鏁版嵁錛屼絾浠栦滑鏄笉鐭ラ亾鐨勩?/span>

璋冪敤erase()鏉ュ垹闄ら偅浜涙畫浣欑殑鏁版嵁銆傛敞鎰忎笂闈緥瀛愪腑閫氳繃erase()鍒犻櫎remove_if()鐨勭粨鏋滃拰vs.enc()鑼冨洿鐨勬暟鎹?/span>

 

鍘嬬緝涓涓噧鑲跨殑vector

寰堝鏃跺欏ぇ閲忕殑鍒犻櫎鏁版嵁錛屾垨鑰呴氳繃浣跨敤reserve()錛岀粨鏋?/span>vector鐨勭┖闂磋繙榪滃ぇ浜庡疄闄呴渶瑕佺殑銆傛墍鏈夐渶瑕佸帇緙?/span>vector鍒板畠瀹為檯鐨勫ぇ灝忋?/span>resize()鑳藉澧炲姞vector鐨勫ぇ灝忋?/span>Clear()浠呬粎鑳藉鏀瑰彉緙撳瓨鐨勫ぇ灝忥紝鎵鏈夌殑榪欎簺瀵逛簬vector閲婃斁鍐呭瓨絳変節闈炲父閲嶈浜嗐傚浣曟潵瑙e喅榪欎簺闂鍛紝璁╂垜浠潵鎿嶄綔涓涓嬨?/span>

鎴戜滑鍙互閫氳繃涓涓?/span>vector鍒涘緩鍙︿竴涓?/span>vector銆傝鎴戜滑鐪嬬湅榪欏皢鍙戠敓浠涔堛傚亣瀹氭垜浠凡緇忔湁涓涓?/span>vector v錛屽畠鐨勫唴瀛樺ぇ灝忎負1000錛屽綋鎴戜滑璋冪敤size()鐨勬椂鍊欙紝瀹冪殑澶у皬浠呬負7銆傛垜浠氮璐逛簡澶ч噺鐨勫唴瀛樸傝鎴戜滑鍦ㄥ畠鐨勫熀紜涓婂垱寤轟竴涓?/span>vector銆?/span>

 

std::vector<CString> vNew(v);

cout << vNew.capacity();

 

vNew.capacity()榪斿洖鐨勬槸7銆傝繖璇存槑鏂板垱寤虹殑鍙槸鏍規嵁瀹為檯澶у皬鏉ュ垎閰嶇殑絀洪棿銆傜幇鍦ㄦ垜浠笉鎯抽噴鏀?/span>v錛屽洜涓烘垜浠鍦ㄥ叾瀹冨湴鏂圭敤鍒板畠錛屾垜浠彲浠ヤ嬌鐢?/span>swap()灝?/span>v鍜?/span>vNew浜掔浉浜ゆ崲涓涓嬶紵

 

    vNew.swap(v);

    cout << vNew.capacity();

    cout << v.capacity();

 

鏈夎叮鐨勬槸錛?/span>vNew.capacity()鏄?/span>1000錛?/span>鑰?/span>v.capacity()鏄?/span>7銆?/span>

鐜板湪鏄揪鍒版垜鐨勭洰鐨勪簡錛屼絾鏄茍涓嶆槸寰堝ソ鐨勮В鍐蟲柟娉曪紝鎴戜滑鍙互鍍忎笅闈㈣繖涔堝啓錛?/span>

 

    std::vector<CString>(v).swap(v);

     

浣犲彲浠ョ湅鍒版垜浠仛浜嗕粈涔堬紵鎴戜滑鍒涘緩浜嗕竴涓復鏃跺彉閲忎唬鏇塊偅涓懡鍚嶇殑錛岀劧鍚庝嬌鐢?/span>swap(),榪欐牱鎴戜滑灝卞幓鎺変簡涓嶅繀瑕佺殑絀洪棿錛屽緱鍒板疄闄呭ぇ灝忕殑v銆?/span>

 

緇撹

鎴戝笇鏈涜繖涓枃妗e彲浠ョ粰閭d簺浣跨敤STL vector瀹瑰櫒鐨勫紑鍙戣呭緢鏈変環鍊肩殑鍙傝冦傛垜涔熷笇鏈涢氳繃闃呰榪欑瘒鏂囩珷浣犲彲浠ユ斁蹇冨湴浣跨敤vector鏉ヤ唬鏇?/span>C璇█涓殑鏁版嵁浜嗐?/span>

 

鍙傝?/span>

Plauger, P.J. Standard C++ Library Reference. February, 2003. MSDN.

Schildt, Herbert. C++ from the Ground Up, Second Edition. Berkeley: 1998.

Sutter, Herb. More Exceptional C++. Indianapolis: 2002.



騫芥ⅵ鏂板獎 2010-06-23 13:56 鍙戣〃璇勮
]]>
精品久久久久久中文字幕| 久久伊人影视| 色综合久久中文综合网| 女人香蕉久久**毛片精品| 久久久久人妻一区精品果冻| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久亚洲欧美日本精品| 久久性精品| 996久久国产精品线观看| 午夜视频久久久久一区| av国内精品久久久久影院| 亚洲国产高清精品线久久| 久久w5ww成w人免费| 久久亚洲国产精品成人AV秋霞| 久久91精品久久91综合| 久久精品人人做人人爽电影| 国产精品女同久久久久电影院| 国内精品久久久久久中文字幕| 人妻少妇久久中文字幕一区二区| 99热精品久久只有精品| 久久精品毛片免费观看| 久久伊人五月丁香狠狠色| 久久久久久久综合日本| 国产精品99久久精品爆乳| 国产婷婷成人久久Av免费高清 | 亚洲一区中文字幕久久| 亚洲伊人久久精品影院| 国产精品99久久久精品无码| 久久久久黑人强伦姧人妻| 99久久国产亚洲高清观看2024| 久久99热只有频精品8| 97久久国产综合精品女不卡 | 久久久久高潮综合影院| 午夜精品久久久久久影视777| 99久久免费只有精品国产| 久久久女人与动物群交毛片| 久久人人爽人人爽人人片av高请| 伊人久久大香线蕉综合影院首页| 性做久久久久久久久浪潮| 亚洲va中文字幕无码久久| 国产精品久久久久免费a∨|