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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC 的CList,CPtrList,CObList,CStringList 的用法

發布時間:2023/12/31 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC 的CList,CPtrList,CObList,CStringList 的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一直在編程中使用stl進行編程,但是最近感覺微軟提供的模版類也是很好,出錯機率更低,建議在mfc的工程使用。相關介紹如下,參照msdn搞清接口即可使用

CList是通用型的列表類,你可以存放指定的數據類型,用法如下:
CList<CPoint, CPoint&> list;
這樣就指定了CList中存放的是CPoint類型的引用;

CPtrList,CObList,CStringList都是具體的用于某種類型的集合類型
而CPtrList存放的是void類型的指針,取出的時候必須要強制轉換;
CObList用于存放從CObject派生的數據類型的指針;
CStringList存放CString字符串類型,相當于CList<Cstring,CString>

///

Lists
The InsertAt and RemoveAt functions make it easy to add items to an array and to take them away. But the ease with which items are inserted and removed comes at a cost: when items are inserted or removed in the middle of an array, items higher in the array must be shifted upward or downward in memory. The performance penalty incurred when manipulating large arrays in this manner can be quite expensive.

A classic solution to the problem of maintaining ordered lists that support fast item insertion and removal is the linked list. A linked list is a collection of items that contain pointers to other items. In a singly linked list, each item contains a pointer to the next item in the list. Moving forward through a singly linked list is fast because moving to the next item is a simple matter of extracting that item's address from the current item. To support fast forward and backward traversal, many lists are doubly linked—that is, each item contains a pointer to the previous item in the list as well as to the next item. Given the address of the first item in the list (the head), it's a simple matter to enumerate the items in the list using code like this:

item* pItem = GetHead ();
while (pItem != NULL)
??? pItem = pItem->pNextItem;


Conversely, given the address of the final item in the list (the tail), a doubly linked list can be traversed in reverse order, like this:

item* pItem = GetTail ();
while (pItem != NULL)
??? pItem = pItem->pPrevItem;


These examples assume that the list doesn't wrap around on itself—that is, that the pNextItem pointer in the final item and the pPrevItem pointer in the first item are equal to NULL. Some linked lists form a circular chain of items by connecting the first and last items.

How do linked lists solve the problem of fast item insertion and removal? Inserting an item midway through the list doesn't require any items to be shifted upward in memory; it simply requires that the pointers stored in the items before and after the insertion point be adjusted to reference the new item. Removing an item is equally efficient, requiring nothing more than the adjustment of two pointers. Compare this to inserting an item into the middle of an array, which could require a memcpy involving tens, hundreds, or perhaps thousands of items to make room for one new item, and the benefits should be obvious.

Nearly every programmer has, at some point in his or her career, implemented a linked list. Everyone should do it once, but no one should have to do it more than once. Fortunately, many class libraries, including MFC, provide canned implementations of linked lists. As an MFC programmer, you can sleep well tonight knowing that you'll probably never have to write a linked list from scratch again.


The MFC List Classes
The MFC template class CList implements a generic linked list that can be customized to work with any data type. MFC also provides the following nontemplatized list classes to deal with specific data types. These classes are provided primarily for compatibility with older versions of MFC and aren't used very often in modern MFC applications.

Type-Specific MFC List Classes

Class Name Data Type
CObList CObject pointers
CPtrList void pointers
CStringList CStrings

MFC lists are doubly linked for fast forward and backward traversal. Positions in the list are identified by abstract values called POSITIONs. For a list, a POSITION is actually a pointer to a CNode data structure representing one item in the list. CNode contains three fields: a pointer to the next CNode structure in the list, a pointer to the previous CNode structure, and a pointer to the item data. Insertions at the head of the list, the tail, or at a specified POSITION are fast and efficient. Lists can also be searched, but because searches are performed by traversing the list sequentially and examining its items one by one, they can be time-consuming if the list is long.

I'll use CStringList to demonstrate how the list classes are used, but keep in mind that the principles demonstrated here apply to the other list classes as well. The following example creates a CStringList object and adds 10 strings to it:

// Schools of the Southeastern Conference
const TCHAR szSchools[][20] = {
??? _T ("Alabama"),
??? _T ("Arkansas"),
??? _T ("Florida"),
??? _T ("Georgia"),
??? _T ("Kentucky"),
??? _T ("Mississippi"),
??? _T ("Mississippi State"),
??? _T ("South Carolina"),
??? _T ("Tennessee"),
??? _T ("Vanderbilt"),
};

CStringList list;
for (int i=0; i<10; i++)
??? list.AddTail (szSchools[i]);


The AddTail function adds an item (or all the items in another linked list) to the end of the list. To add items to the head of the list, use the AddHead function instead. Removing an item from the head or tail is as simple as calling RemoveHead or RemoveTail. The RemoveAll function removes all the items in one fell swoop.

Each time a string is added to a CStringList, MFC copies the string to a CString and stores it in the corresponding CNode structure. Therefore, it's perfectly acceptable to allow the strings that you initialize a list with to go out of scope once the list is built.

Once a list is created, you can iterate through it forward and backward using the GetNext and GetPrev functions. Both accept a POSITION value identifying the current position in the list and return the item at that position. Each also updates the POSITION value to reference the next or previous item. You can retrieve the POSITION of the first or last item in the list with GetHeadPosition or GetTailPosition. The following statements enumerate the items in the list from first to last, writing each string retrieved from the list to the debug output window using MFC's TRACE macro:

POSITION pos = list.GetHeadPosition ();
while (pos != NULL) {
??? CString string = list.GetNext (pos);
??? TRACE (_T ("%s/n"), string);
}

?


Walking the list backward is equally simple:

POSITION pos = list.GetTailPosition ();
while (pos != NULL) {
??? CString string = list.GetPrev (pos);
??? TRACE (_T ("%s/n"), string);
}

?


If you simply want to retrieve the first or last item in the list, you can use the list's GetHead or GetTail function. Neither requires a POSITION value as input because the position is implied in the call.

Given a POSITION value pos identifying a particular item, you can use the list's At functions to retrieve, modify, or delete the item:

CString string = list.GetAt (pos);?????? // Retrieve the item.
list.SetAt (pos, _T ("Florida State"));? // Change it.
list.RemoveAt (pos);???????????????????? // Delete it.

?


You can also use InsertBefore or InsertAfter to insert items into the list:

list.InsertBefore (pos, _T ("Florida State"));? // Insert at pos.
list.InsertAfter (pos, _T ("Florida State"));?? // Insert after pos.

?


Because of the nature of linked lists, insertions and removals performed this way are fast.

MFC's list classes include two member functions that you can use to perform searches. FindIndex accepts a 0-based index and returns the POSITION of the item at the corresponding location in the list. Find searches the list for an item matching an input you specify and returns its POSITION. For string lists, Find compares strings. For pointer lists, it compares pointers; it does not dereference the pointers and compare the items that they point to. Searching a string list for "Tennessee" requires just one function call:

POSITION pos = list.Find (_T ("Tennessee"));

?


By default, Find searches the list from beginning to end. If you'd like, you can specify an alternate starting point in the function's second parameter. But be aware that if the item you're looking for occurs before the starting POSITION, Find won't find it because searches don't wrap around to the beginning of the list.

You can find out how many elements a list contains with the GetCount function. If GetCount returns 0, the list is empty. A quick way to test for an empty list is to call IsEmpty.

Creating Type-Safe List Classes with CList
You can create type-safe list classes for the data types of your choice from MFC's CList class. Here's an example involving a linked list of CPoint objects:

CList<CPoint, CPoint&> list;

// Populate the list.
for (int i=0; i<10; i++)
??? list.AddTail (CPoint (i*10, 0));

// Enumerate the items in the list.
POSITION pos = list.GetHeadPosition ();
while (pos != NULL) {
??? CPoint point = list.GetNext (pos);
??? TRACE (_T ("x=%d, y=%d/n"), point.x, point.y);
}

?


As with CArray, the first template parameter specifies the data type (CPoint objects) and the second specifies how items are passed in parameter lists (by reference).

If you use classes rather than primitive data types in a CList and you call the list's Find function, your code won't compile unless one of the following conditions is true:


The class has an overloaded == operator that performs a comparison to a like object.


You override the template function CompareElements with a type-specific version that compares two instances of the class.

The first method—overloading the == operator—is the more common of the two and has already been done for you in MFC classes such as CPoint and CString. If you write a class yourself, you must do the operator overloading. Here's a modified version of CPoint3D that overloads the comparison operator for compatibility with CList::Find:

class CPoint3D
{
public:
??? CPoint3D ()
??? {
??????? x = y = z = 0;
??? }
??? CPoint3D (int xPos, int yPos, int zPos)
??? {
??????? x = xPos;
??????? y = yPos;
??????? z = zPos;
??? }
??? operator== (CPoint3D point) const
??? {
??????? return (x == point.x && y == point.y && z == point.z);
??? }
??? int x, y, z;
};

?


The alternative to overloading the comparison operator is to override the global CompareElements function, as demonstrated here:

class CPoint3D
{
public:
??? CPoint3D ()
??? {
??????? x = y = z = 0;
??? }
??? CPoint3D (int xPos, int yPos, int zPos)
??? {
??????? x = xPos;
??????? y = yPos;
??????? z = zPos;
??? }
??? // Note: No operator==
??? int x, y, z;
};

BOOL AFXAPI CompareElements (const CPoint3D* p1, const CPoint3D* p2)
{
??? return (p1->x == p2->x && p1->y == p2->y && p1->z == p2->z);
}

?


Overriding CompareElements eliminates the need for operator overloading because the default implementation of CompareElements, which is called by CList::Find, compares items using the comparison operator. If you override CompareElements and don't use == in the override, you don't need to overload the == operator either.



//--------------------------------------------------------------------------------------------------------------------------------------------------//

關于MFC和STL的使用
趙湘寧
?
問題:
??? 我在幾個不同的地方讀過有關STL的內容,但還是不知道在我的應用程序中到底是用STL還是用MFC?我的程序也處理string,vectors等東西。使用STL和MFC到底有什么不同?
解答:
??? 要回答“我應該使用哪一個?”這樣的問題,答案幾乎都一樣。它依賴于你想做什么,你的應用程序的種類以及你的知識。還有你的C++資格認證也很重要。當你需要快速做某件事情時,最好是利用你最熟悉的工具。如果你想要處理文本,而你有熟悉MFC的話,CString為首選。如果你熟悉STL,那就用string取代MFC。在這個世界上,你選擇哪一個并不重要。使用string,list,或者大把的類都一樣可以做好。但是有時要說這個或者哪個系統更好需要時間。例如,最近的一篇文章中有個例子程序RECYCLE,其中我就是用了STL,為什么呢?
??? 當我開始寫這個程序時,我將它寫成一個MFC的控制臺應用——只因為我已經由一個寫好的模板控制臺應用。但是重新看了代碼之后(你肯定也常常遇到這種情況)。我使用的都是MFC的CString和CstringList。因為程序要解析命令行參數,RECYCLE要建立一個刪除文件的名字列表,文件名字都是CString類型的。如果僅僅為了處理串和列表而鏈接MFC的話似乎有些浪費資源。CStringList需要引入整個afxcoll.obj,CString需要加載strcore.obj,并且AfxWinInit肯定要初始化需要的模塊。如果你不看映射文件,你絕對想象不到MFC要加載些什么東西。其實根本不用看,我就知道RECYCLE應該使用STL效率更高。
??? 為了將程序轉換到STL并刪除所有MFC的跟蹤代碼,我只要改為數不多的幾行代碼就可以了。首先,我#include<string>和<list>,然后為方便起見,添加一個類型定義:
// 串列表
typedef list<string> CStringList;

只有名字與MFC相同,而接口已經完全變了。尤其是STL使用iterators代替了POSITIONs。
CStringList files; // 文件名字列表

CStringList::iterator i;
for (i=files.begin(); i!=files.end(); i++) {

}

??? 比較之下,我發現STL的iterators比MFC的POSITIONs更容易記憶。不知什么原因,我總是記不住POSITIONs的使用方法,每次總是要去查手冊,而begin/end 和 i++語法對我來說輕車熟路。另一方面,我希望STL有一個轉換函數用于將string轉成LPCTSTR,就像CString那樣:
CString s; // MFC
LPCTSTR pstr = s; // 調用 "CString::operator LPCTSTR() const;"
MFC的轉換函數很棒,使用它可以將某個CString傳到任何可以傳指針的的C串中。可以讓你寫如下的代碼:
CString s = "whatever";
MyFunc(s); // MyFunc 想要 LPCTSTR
而如果使用STL,你必須顯式地調用string::c_str.
string s;
MyFunc(s.c_str());
??? 也許STL的設計者認為轉換函數容易引起混亂,確實是這樣,正是因為如此才造就了整個STL設計。每次只要已涉及到STL代碼就犯難,主要的問題是類型。使用STL的一個更重要的理由當然是可移植性。STL是C++標準的一部分,就像printf,,tolower,strcpy等是C標準的一部分一樣。我總是感覺到可移植性有一些問題,因為大多數程序它依賴于平臺。其它操作系統有
SHFileOperation嗎?沒有。然而,盡可能將平臺依賴程度降至最小,STL能幫你做到。任何想要與ANSI兼容的編譯器必須支持STL。但這種支持并不總是充分和成功。尤其是微軟將STL看成一種負擔,而不是把它當成一種好技術來對待。這顯然是非常不明智的。
??? 另一方面,公正地講,STL確實很神秘,表現在其內容劃分、發生器以及容器等方面。并且它的模板代碼總是讓人不可接近(有點像ATL),閱讀STL代碼對所有人都是個嚴重的挑戰。但Unix程序員可能體會到了STL所包含的東西,如果你熟悉了STL的那些單調乏味的術語,意想不到的函數名以及高度概括的代碼,如果你能駕馭它們,那種感覺好極了。不久你就會融入到其中并發現STL的功能是多么強大,并且易于使用。STL遵循Unix的系統慣例,象SED,AWK和Emacs——難于學習,但功能強大并易于使用(我坦白承認打死都不會用Emacs)。如
果你真想做一些低級編程,那就認識STL吧!哪里能找到更多的有關STL的內容呢?網絡上有很多關于STL的站點。只要用“Standard Template Library”或“STL”來搜索就可以找到一大把。最有名的一個站點是:
http://www.sgi.com/Technology/STL/index.html
你可以從上面找到容易理解文檔和FAQ頁面。

最后祝你編程愉快!


?

總結

以上是生活随笔為你收集整理的MFC 的CList,CPtrList,CObList,CStringList 的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

天天干com | 91视视频在线直接观看在线看网页在线看 | 91日韩在线视频 | 国产精品 亚洲精品 | 中文字幕人成人 | 国产黄色网| 日韩69av| 高清有码中文字幕 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲成人黄色 | 欧美一级欧美一级 | 国产精品69久久久久 | 激情综合网色播五月 | 丁香一区二区 | 99成人精品| 亚洲人在线7777777精品 | 操夜夜操 | 五月天伊人 | 国产精品乱码久久久 | 五月天国产精品 | 国产伦理一区二区 | 最新的av网站| 成人在线观看资源 | 天天色天天操天天爽 | 国产成人免费网站 | av高清一区二区三区 | 手机av电影在线观看 | 国产成人精品一区二三区 | 国产99精品| 久国产在线播放 | 中文字幕一区二区三区久久蜜桃 | 中文字幕在线观看的网站 | 亚洲日本精品视频 | 国产在线观看地址 | 人人干人人添 | 二区中文字幕 | 看av在线 | 久草在线 | 人人草在线观看 | 日韩在线高清 | 精品超碰 | 91插插影库 | 人人玩人人弄 | 69国产盗摄一区二区三区五区 | 最近中文字幕大全中文字幕免费 | 欧美亚洲三级 | 亚洲欧美一区二区三区孕妇写真 | 在线观看国产福利片 | 最近乱久中文字幕 | 久久伊人国产精品 | 香蕉成人在线视频 | www.久久色 | 香蕉手机在线 | 日韩精品在线视频 | 成人午夜免费剧场 | a天堂最新版中文在线地址 久久99久久精品国产 | 中文字幕第一页在线 | 九九九九九九精品任你躁 | 久久久精品国产免费观看一区二区 | 中文字幕一区三区 | 91大神在线看 | 国产成人免费在线观看 | 成人一区在线观看 | 天天射射天天 | 久精品视频在线观看 | 草久在线观看 | 四虎影视精品成人 | 欧美性春潮| av中文字幕电影 | 超碰公开在线 | 国产专区视频在线观看 | 亚洲成人资源在线观看 | 国产黄a三级三级 | 日韩黄色一区 | 国产高清视频免费最新在线 | 亚洲少妇影院 | 9在线观看免费 | 久久久久免费网站 | 日韩色爱 | 成人在线视频在线观看 | 日韩在线观看中文 | 九九视频免费在线观看 | 99久久精品费精品 | 国产伦精品一区二区三区高清 | 欧美在线观看视频 | 亚洲免费不卡 | 超碰在线94 | 成人精品视频 | 最新日韩在线 | 91视频高清完整版 | 日本成人免费在线观看 | 97人人模人人爽人人少妇 | 在线播放视频一区 | 欧美精品久久久久久久久久 | zzijzzij亚洲日本少妇熟睡 | 国产精品18久久久 | 99视频在线免费看 | 中日韩欧美精彩视频 | 午夜国产福利在线 | 色综合狠狠干 | 青青河边草免费直播 | 99在线观看免费视频精品观看 | 人人讲| 超级碰碰碰免费视频 | 国产高清视频网 | 瑞典xxxx性hd极品 | 久久男人视频 | 最新av免费在线 | 在线看中文字幕 | 日日夜夜网 | 亚洲精品一区二区三区新线路 | 久久综合九色综合97婷婷女人 | 在线精品视频免费播放 | 一级黄色a视频 | 国产精品一区二区免费视频 | 久久一区二区免费视频 | 波多野结衣视频一区二区三区 | 中文字幕在线视频国产 | 久久人人看 | www.色婷婷.com | 国产精品精品国产色婷婷 | 国产91精品久久久久久 | 91丨九色丨丝袜 | 色视频 在线 | 日韩一区二区三区免费视频 | 国产老熟 | 久久精品首页 | 国产欧美在线一区二区三区 | 国产经典三级 | 国产黄色免费 | 九九热只有精品 | 69视频永久免费观看 | 国产在线不卡一区 | 91大神电影 | 天天舔夜夜操 | 欧美在线a视频 | 久久艹人人 | 亚洲精品视频在线观看免费视频 | 国产不卡av在线 | 久草资源在线观看 | 国产视频一区在线免费观看 | 久久久国产网站 | 亚洲综合少妇 | 天天射天天 | 欧美二区三区91 | 丁香六月激情婷婷 | 国产91精品看黄网站 | 日韩av电影网站在线观看 | 超碰97人人爱 | 国产免码va在线观看免费 | 一区二区三区精品久久久 | 色综合色综合久久综合频道88 | 久久高清视频免费 | 91高清一区 | 欧美日韩高清国产 | 国产精品美女在线观看 | 91av在线免费观看 | 五月婷婷色播 | 中文字幕一区二区在线播放 | 麻豆网站免费观看 | 亚洲永久精品在线观看 | 亚洲国产小视频在线观看 | 天天操夜夜做 | 国产一线二线三线在线观看 | 免费h漫在线观看 | 在线日韩精品视频 | 日韩一级黄色av | 日韩av高清 | 久久99网站 | 中文字幕在线观看一区二区三区 | www日韩在线观看 | 国产精品成人一区二区 | 亚洲精品国产成人av在线 | 国产精品毛片完整版 | 久草视频免费在线播放 | 中文字幕在线第一页 | 青春草视频在线播放 | 日女人电影 | av高清一区二区三区 | av大片免费在线观看 | 精品国产精品一区二区夜夜嗨 | 人人爽人人搞 | 日韩成人xxxx | 天堂va欧美va亚洲va老司机 | 综合久久久 | 国产一区二区精品久久 | 日韩电影一区二区在线 | 国产91aaa| 超碰在线个人 | 亚洲成熟女人毛片在线 | 天天操天天舔天天干 | 99视频在线看 | 成人a级网站 | 97超碰网| 成人av免费电影 | 久热久草在线 | 色狠狠狠 | 中文字幕在线日 | 免费在线观看黄 | 成人午夜精品福利免费 | 激情久久伊人 | 色综合久久中文综合久久牛 | 国产精品久久久久久久久久三级 | 精品国模一区二区 | 午夜三级福利 | 久久国产色| 国产一区二区不卡在线 | 91在线色 | 国产成人综合图片 | 亚洲狠狠丁香婷婷综合久久久 | av中文字幕在线免费观看 | 日韩av影视 | 一本大道久久精品懂色aⅴ 五月婷社区 | 韩日色视频 | 国产一级免费播放 | 色综合久久久网 | 九九国产视频 | 精品一区二区免费 | 九九九免费视频 | 国产精品免费看久久久8精臀av | 亚洲视频专区在线 | 激情视频免费观看 | 国产专区精品 | 国产精品婷婷午夜在线观看 | 97在线观看免费观看 | 日韩一区二区三区高清在线观看 | 亚洲精品456在线播放乱码 | 日韩在线欧美在线 | 欧产日产国产69 | 在线中文字幕播放 | 精品视频在线观看 | 天天射天天搞 | av不卡免费看 | 国产美女免费观看 | www.亚洲精品视频 | 色国产精品 | 福利视频一二区 | www.天天射.com | 黄色在线观看www | 久久精品国产一区二区三 | 一本一道波多野毛片中文在线 | 高清国产一区 | 在线涩涩 | 中文成人字幕 | av一级片在线观看 | 国产精品日韩在线 | 超碰在线最新 | 日韩不卡高清 | 最新日韩在线观看视频 | 久草在线高清视频 | 国产视频网站在线观看 | 国产在线观看不卡 | 国产在线一区二区 | 亚洲一区二区三区91 | 亚洲激情在线视频 | 国产亚洲情侣一区二区无 | 全久久久久久久久久久电影 | 可以免费看av| 国产人成精品一区二区三 | 亚洲资源在线网 | 欧美另类美少妇69xxxx | 国产精品视频在线看 | 探花国产在线 | 国产精品永久在线 | 99视频精品免费视频 | 91.dizhi永久地址最新 | 久久成人黄色 | 天天曰| 国产精品久久久久久久久久久久冷 | 成人禁用看黄a在线 | 国产一区二区不卡视频 | 久久影视网 | 91免费高清观看 | 亚洲人人av| 久久一区国产 | 国产99免费 | 国内精品久久久久久久影视麻豆 | av三区在线 | av一级二级 | 激情丁香综合五月 | 天天舔天天射天天操 | 日本黄色免费在线观看 | 精品久久国产一区 | 欧美性视频网站 | 操高跟美女 | 麻豆一二 | 99色在线播放 | 狠狠躁夜夜躁人人爽视频 | 中文字幕在线观看第一页 | 精品一区二区在线免费观看 | 高清精品在线 | 国产成人一区二区三区影院在线 | 国产精品福利在线 | 国产一区成人在线 | 亚洲美女在线国产 | www.天天草 | 午夜av一区二区三区 | 久草热视频 | 一区在线免费观看 | 国产小视频你懂的 | 久久久久久久久久亚洲精品 | 国产成人精品一区二区三区网站观看 | 成人a级黄色片 | 国产自偷自拍 | 免费毛片一区二区三区久久久 | 天天爽夜夜爽人人爽曰av | 韩日成人av | 人人爱天天操 | 热99在线| 国产玖玖精品视频 | 亚洲成a人片77777kkkk1在线观看 | 99久久久国产精品 | www日韩| 天天操夜夜操天天射 | 中文国产在线观看 | 日韩有码网站 | 91丨九色丨国产丨porny精品 | 在线观看免费版高清版 | 免费观看mv大片高清 | 免费三级骚 | 久 久久影院 | 最新黄色av网址 | 超碰公开在线观看 | 国产成人资源 | 成人午夜黄色 | 欧美日韩精品在线免费观看 | 免费日韩三级 | 久久久麻豆视频 | 国产精品久久久久久高潮 | 黄色小说免费观看 | 久久国产91 | 五月天久久精品 | 蜜臀av性久久久久av蜜臀三区 | 国产精品成人品 | 香蕉精品视频在线观看 | 最近中文字幕完整视频高清1 | 久久精品人 | 色婷婷免费 | 超碰在线人人艹 | 久久欧美视频 | 91成人看片 | aa级黄色大片 | 91视频这里只有精品 | 黄色成人av | 亚洲激情 在线 | 综合在线观看色 | 欧美日韩国产高清视频 | 国产老熟 | 免费看成人 | 天天操天天干天天摸 | 中文字幕在线观看第一页 | 国产成人精品一区二区三区在线观看 | 精品美女在线视频 | 久久久精品视频成人 | 高清不卡免费视频 | 午夜天天操 | 亚洲国产三级在线观看 | 欧美夫妻性生活电影 | 久久成人一区二区 | 精品国精品自拍自在线 | 美女网站视频久久 | 在线观看成人国产 | 国产最新在线视频 | 最新日本中文字幕 | 波多在线视频 | 久久www免费视频 | 国产美女在线精品免费观看 | 日韩精品欧美精品 | a爱爱视频 | 久久福利 | 久久精品99国产精品 | 在线电影 一区 | 月丁香婷婷 | 激情网在线观看 | 久久激情视频网 | 国产婷婷视频在线 | 日韩av看片| 日本在线精品视频 | 欧美最猛性xxx | 黄色免费在线看 | wwwwww国产 | 欧美午夜寂寞影院 | 国产在线播放一区二区三区 | 九九免费在线视频 | 干干干操操操 | 男女拍拍免费视频 | av在线一二三区 | 日日夜日日干 | 国产视频69 | 中文字幕在线一区二区三区 | 四虎在线视频免费观看 | 中文有码在线视频 | 亚洲一区 影院 | 正在播放一区二区 | 二区在线播放 | 看片一区二区三区 | 日本不卡一区二区三区在线观看 | 国产伦精品一区二区三区免费 | 99久久精品国产亚洲 | 日本系列中文字幕 | 视频二区在线 | 69国产盗摄一区二区三区五区 | 欧美日韩在线免费观看 | 69亚洲视频 | 亚洲午夜久久久久 | 一区二区三区免费网站 | 国产又粗又猛又爽又黄的视频先 | 亚洲成人欧美 | 天天在线视频色 | 视频福利在线观看 | 亚洲成人av免费 | 国产美女主播精品一区二区三区 | 国产亚洲成av片在线观看 | 久久成视频 | 亚洲国产成人精品在线 | 韩国av在线播放 | 天天撸夜夜操 | 国产精品福利在线播放 | 91九色网站 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 6699私人影院| av免费观看在线 | 国产精品久久久精品 | 毛片网在线播放 | 中文字幕av全部资源www中文字幕在线观看 | 2021国产在线视频 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 成人黄色毛片 | 黄色aaa级片 | 97成人资源站 | 色婷婷久久一区二区 | 国产精品扒开做爽爽的视频 | 成人中文字幕av | 婷婷网站天天婷婷网站 | 在线观看视频在线 | 91丨九色丨国产在线观看 | 天天干天天摸 | 黄色av免费看 | 国产精品亚洲片在线播放 | 尤物九九久久国产精品的分类 | 国产精品一区免费观看 | 97超碰免费在线观看 | 91在线色 | 久久99九九99精品 | 日本久久精品视频 | 欧美91精品久久久久国产性生爱 | 午夜精品久久久久99热app | 国产成人一级电影 | 福利一区二区三区四区 | 96亚洲精品久久久蜜桃 | 在线免费观看视频一区二区三区 | 伊人热 | 高潮久久久久久久久 | 日本精品久久久久中文字幕 | 一区 在线 影院 | 99爱爱| 免费日韩一级片 | 在线观看中文字幕dvd播放 | 狠狠的干狠狠的操 | 亚洲无吗av | 欧美另类xxxxx | 欧美一二三视频 | 亚洲精品视频免费看 | 日韩视频二区 | 亚洲国产免费网站 | 超碰在线亚洲 | 欧美精品久久久久 | 美女视频又黄又免费 | 国产成人亚洲精品自产在线 | 中文字幕无吗 | 欧洲精品久久久久毛片完整版 | 久久草av| 欧美最爽乱淫视频播放 | 国产精品久久久久免费观看 | 亚洲最大av | 在线看片成人 | 亚洲国产精品va在线看黑人动漫 | 亚洲精品456在线播放乱码 | 国产一区二区手机在线观看 | 国产激情电影综合在线看 | 91精品欧美一区二区三区 | 久草成人在线 | 亚洲成人一区 | 精品视频区 | 国产精品久久久久久久久久久久午 | 久久久久久美女 | 国产五月色婷婷六月丁香视频 | 91x色| 四虎免费在线观看 | 国内视频在线 | 日韩中文字幕a | 日本精品在线看 | 久久伊人八月婷婷综合激情 | 国产一二区在线观看 | 一级一片免费视频 | 热久久最新地址 | 91在线视频在线 | 免费看的黄色网 | 亚洲国产精品一区二区尤物区 | 日韩免费精品 | 在线观看黄色小视频 | 国产精品美女网站 | 国产在线观看国语版免费 | 欧美极品一区二区三区 | 四虎在线观看精品视频 | 99精彩视频 | 亚洲欧美日韩精品久久久 | 日本黄色免费看 | 97国产精品亚洲精品 | 91综合久久一区二区 | 激情综合色播五月 | 99欧美视频| 色综合亚洲精品激情狠狠 | 久久免费视频1 | 久久久久久久久免费视频 | 久青草国产在线 | 9在线观看免费高清完整 | 久久久婷 | 一区二区视频在线观看免费 | 中文超碰字幕 | 最近高清中文字幕在线国语5 | 午夜 免费| 久久99精品久久久久久秒播蜜臀 | 天天色天天草天天射 | av在线网站大全 | 亚洲精品乱码久久久久久蜜桃动漫 | 久久久久久毛片精品免费不卡 | 91精品一区二区三区蜜桃 | 国产精品毛片久久久久久久久久99999999 | 99精品乱码国产在线观看 | 国产日本在线 | 亚洲视频每日更新 | 狠狠色噜噜狠狠狠狠2022 | 香蕉免费在线 | 久久免费在线 | 精品久久久久国产免费第一页 | 亚洲欧美成人 | 欧美成人精品在线 | www日韩| 欧美伦理电影一区二区 | 99久久精品国产欧美主题曲 | 国产精品美女久久久 | 国产成人av在线 | 91精品影视 | 欧美日韩亚洲精品在线 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 开心婷婷色 | 国产在线永久 | 欧美一级视频免费看 | 国产精品激情偷乱一区二区∴ | 香蕉影视 | 色偷偷人人澡久久超碰69 | 天天操天天干天天操天天干 | 久久手机免费视频 | 1区2区3区在线观看 三级动图 | 久久好看免费视频 | 狠狠操91 | 欧美精品在线视频观看 | 成人免费网站在线观看 | 久久人人精 | 亚洲最大av | 国产福利精品一区二区 | 久久夜夜操 | 国产精品12345| 日韩免费在线视频观看 | 国产人免费人成免费视频 | 婷婷久久网站 | 色综合色综合久久综合频道88 | 六月丁香激情综合 | 午夜视频播放 | 人人爽人人爽人人爽学生一级 | 欧美婷婷色 | 欧美aa级 | 少妇按摩av | 在线视频 亚洲 | 蜜臀aⅴ国产精品久久久国产 | 国产精品高潮呻吟久久久久 | 少妇自拍av| 国产精品欧美精品 | 草久久影院 | 久久久久久久18 | 97成人精品区在线播放 | 国产一级做a爱片久久毛片a | 午夜精品久久久久久久99 | 久久看片网站 | 9久久精品 | 天天艹天天操 | av高清免费在线 | 久久久国产网站 | 国产99re | 成人黄色片在线播放 | 国产v在线播放 | 日韩欧美aaa| 久久国产精品二国产精品中国洋人 | 中文字幕免费成人 | 91成人久久 | 99热播精品 | 国产一级淫片在线观看 | 久久免费av电影 | 天天综合网入口 | 午夜影院三级 | 美女网站色在线观看 | 亚洲欧美日韩中文在线 | 午夜在线观看一区 | 精品久久久久久久久久国产 | 在线视频app| 99欧美视频 | 欧美综合在线视频 | 91九色蝌蚪国产 | 在线观看视频在线 | 蜜臀91丨九色丨蝌蚪老版 | 夜夜爽www | av线上免费看 | 最近中文字幕大全 | 久久精品一区二区三区国产主播 | 久久电影国产免费久久电影 | 亚洲高清视频在线 | 91女神的呻吟细腰翘臀美女 | 黄在线免费观看 | 最近中文字幕免费视频 | av网站在线免费观看 | 一区二区视频欧美 | 久青草视频在线观看 | 国产视频高清 | 成人免费在线观看电影 | 国产一区二区在线免费观看 | 99热这里| 免费视频一区二区 | 欧美激情奇米色 | 久久丁香| 国产99久久久久 | 91传媒在线播放 | 国产精品一区二区三区电影 | 九九久久成人 | 人成电影网| 天堂av中文字幕 | 五月天婷亚洲天综合网精品偷 | 国产v在线观看 | 国产日本高清 | 久久8精品 | 精品国产电影一区二区 | 人人爽人人看 | 波多野结衣一区二区 | 亚洲综合五月天 | 精品视频不卡 | 免费观看性生交 | 在线中文字幕电影 | 伊人久久av| av在线电影播放 | 成人免费视频网址 | 天天综合操 | 日韩免费一区二区 | 日韩中文字幕免费视频 | 日韩免费大片 | 国产成人精品999在线观看 | 91九色视频在线观看 | 麻豆视频免费网站 | 深爱激情综合 | 97超碰超碰久久福利超碰 | 国产精品白浆 | 精品天堂av| 麻豆国产视频下载 | 午夜久久久久久久久 | 国产一区二区精品 | 欧美视频在线二区 | 久久99久久99免费视频 | 在线黄色国产 | 五月综合在线观看 | 久草亚洲视频 | 国产在线观看污片 | 国产欧美精品一区二区三区 | 色av男人的天堂免费在线 | 狠狠干婷婷色 | 亚洲三级国产 | 韩国av免费在线 | 亚洲香蕉在线观看 | 精品视频一区在线 | 欧美久久久久久久久 | 免费成人av在线看 | 精精国产xxxx视频在线播放 | 草久热| 日韩欧美高清免费 | 国产精品免费不卡 | 2019中文在线观看 | 欧美精品久久久久久久久久丰满 | 久久美女精品 | 天天综合在线观看 | 在线观看福利网站 | 精品毛片在线 | 久久精品牌麻豆国产大山 | 免费观看9x视频网站在线观看 | 亚洲国产精品成人女人久久 | 人人插人人澡 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 国产精品久久久久永久免费观看 | av免费在线观 | 超碰公开97 | 激情黄色一级片 | 成年人免费av网站 | 在线国产能看的 | 久久精品牌麻豆国产大山 | 人人爽影院 | 欧美永久视频 | 黄色国产精品 | www.黄色片.com | 亚洲视频www| 欧美少妇xxxxxx| 欧美另类交在线观看 | 在线之家免费在线观看电影 | 欧美精品免费在线观看 | 日韩在线观看精品 | 久久婷亚洲五月一区天天躁 | 国产一级片一区二区三区 | 天天操天天射天天插 | 超碰97在线看 | 91av视频导航 | 成人久久影院 | 亚洲久草在线 | 91精品啪在线观看国产 | 亚洲黑丝少妇 | 日韩大片在线观看 | 国产高清综合 | 伊人丁香 | 91精品欧美一区二区三区 | 欧美精品久久天天躁 | 欧美日韩高清一区二区 国产亚洲免费看 | 999久久精品 | 亚洲激情六月 | 国产 日韩 在线 亚洲 字幕 中文 | 成人久久| 免费在线观看av电影 | 欧美午夜精品久久久久 | 精品国产免费人成在线观看 | 成年人免费av网站 | 精品国产一区二区三区久久影院 | 日韩1级片 | 久久综合狠狠综合久久狠狠色综合 | 美女网站黄免费 | 国产高清一 | 九九热只有这里有精品 | 看毛片的网址 | 国产精品成人自拍 | 五月综合色 | 国产最新91 | 超碰在97 | 国产精品免费久久久久影院仙踪林 | 国产精品永久免费 | 一区二区精品国产 | 日韩av不卡在线 | 在线天堂中文在线资源网 | 日日夜夜精品免费观看 | 国产精品免费不卡 | 四虎影视成人永久免费观看视频 | 99久久爱| 国产999免费视频 | 深爱激情久久 | 国产丝袜 | 亚洲欧美激情精品一区二区 | 91av福利视频| 日韩免费看 | 久久另类小说 | 91在线一区二区 | 91电影福利 | 日本特黄一级片 | 国产麻豆精品在线观看 | 99资源网 | av电影在线观看完整版一区二区 | 久久久久久久久久网站 | 国产精品久久久久久久久久久久久久 | 片黄色毛片黄色毛片 | a√资源在线 | 久久视了 | 福利视频一区二区 | www麻豆视频 | 九九热av| 日本在线观看一区二区三区 | 欧美极品少妇xbxb性爽爽视频 | 2019天天干夜夜操 | 91av小视频| 91av亚洲 | 最新久久久 | 久久久www成人免费精品 | 经典三级一区 | 日本韩国在线不卡 | 国产日韩精品一区二区在线观看播放 | 亚洲动漫在线观看 | 国产小视频在线免费观看 | 一区二区三区动漫 | 欧美在线视频一区二区 | 亚洲精品免费观看视频 | 国产成人免费在线观看 | 黄色网址在线播放 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 国产精品毛片久久久久久 | 黄色亚洲片 | 久久99热这里只有精品 | 日韩免费看的电影 | 99热99热| 久久人人干 | 91人人插 | 亚洲国产剧情 | 中文国产成人精品久久一 | 最新国产精品拍自在线播放 | 天天爱天天操 | 国产精品专区h在线观看 | 日韩理论片在线 | 网站在线观看你们懂的 | 五月婷婷一区 | av官网| 天天插天天爱 | 精品 激情| 亚洲精品小区久久久久久 | 欧美日韩精品综合 | 91久久久久久久一区二区 | 亚洲国产精品视频 | 亚洲精品中文字幕在线观看 | 日韩在线一二三区 | 色91av | 国内精品久久久久久久久 | 五月天激情视频在线观看 | 欧美特一级 | 成人午夜网址 | 狠狠插狠狠干 | 99麻豆久久久国产精品免费 | 97电影网站 | 一区二区三区在线看 | 国产精品第 | 国产精品一区二区电影 | 91精品视频免费看 | 色婷在线 | 欧美日韩中文视频 | 91av在线视频播放 | 成人免费共享视频 | 精品久久久久免费极品大片 | 成人在线免费小视频 | 国产精品精品久久久久久 | 在线观看视频91 | 久久免费一 | 国产精品区二区三区日本 | 久久久久国产精品厨房 | 欧美91片| 亚洲成人黄色在线 | 97超碰香蕉 | 狠狠色丁香久久婷婷综合丁香 | 成人av免费在线播放 | 91丨porny丨九色 | 伊人天天狠天天添日日拍 | 91自拍91 | 日韩在线免费播放 | 久久麻豆视频 | 黄色免费高清视频 | 国产精品精品国产色婷婷 | 最近中文字幕视频网 | 激情喷水| 99性视频| 日韩电影在线一区 | 黄色www免费| 国产高清 不卡 | 中文字幕在线播放一区二区 | 天天操天天操天天操天天操 | 在线免费观看视频a | 97福利在线 | 天堂视频中文在线 | 欧美日韩午夜在线 | 国产电影黄色av | 日本精品视频网站 | 成人一级片在线观看 | 日韩高清免费在线 | 精品免费久久 | 国产精品美女在线观看 | 久久se视频 | 国产成人精品一区一区一区 | 日韩一区正在播放 | 91色偷偷| 岛国av在线免费 | 韩国av免费看| 中文av在线免费观看 | 久久影院中文字幕 | 日本中文字幕观看 | 国产精品久久久久久久久久三级 | 国产精品欧美久久久久无广告 | 久草在线免费资源站 | 国产精久久久久久妇女av | 久久久久国产精品午夜一区 | 欧美中文字幕第一页 | 免费看的av片 | 丁香一区二区 | 成人97视频 | 免费视频一二三 | 激情欧美丁香 | 国产在线观看免费观看 | 色天天 | 久久99精品波多结衣一区 | 97在线观看免费观看 | 国产伦精品一区二区三区四区视频 | 国产一级免费在线观看 | 国产三级在线播放 | www.黄色片.com | 狠狠狠狠狠狠操 | 97超碰.com | www.久久视频| 国产亚洲精品成人av久久影院 | 日韩成人在线一区二区 | 福利视频一区二区 | 久久夜夜操 | 欧美一二三专区 | 五月综合激情网 | 久影院 | 免费a v视频| 91人人澡人人爽人人精品 | 国产1区在线 | 色在线国产 | 国产小视频免费观看 | 久草观看视频 | 又黄又爽又无遮挡免费的网站 | 免费国产一区二区 | 天天综合网 天天综合色 | 香蕉网在线观看 | 欧美在线视频不卡 | 毛片网站在线 | 欧洲色综合 | 日韩网站一区 | 日韩二区三区 | 狠狠狠狠狠狠干 | 91视频 - v11av | 久久精品福利 | 亚洲黄色一级视频 | 999在线精品 | av一级片在线观看 | 91麻豆精品国产91久久久无需广告 | 91精品国产一区二区在线观看 | 免费视频黄 | 欧美精品久久久久久久亚洲调教 | 91视频在线观看下载 | 欧美亚洲精品在线观看 | 日日夜夜精品免费观看 | 国产黄av | 91人人干| 久久亚洲成人网 | 日韩免费在线网站 | 国产视频色 | 国产精品第二页 | 天天操天天射天天爱 | 国产精品久久久久久999 | 国产亚洲一区二区在线观看 | 日韩综合第一页 | 97国产一区二区 | 久久爱资源网 | 国产黄色精品网站 | 久久久久久久久久伊人 | 久久天天躁狠狠躁亚洲综合公司 | 欧美激情综合五月色丁香小说 | 午夜一级免费电影 | 国产视频美女 | 97免费公开视频 | 久久国产一区二区三区 | 成人app在线播放 | 午夜免费福利视频 | 丁香免费视频 | 国产精品免费成人 | 中文字幕免费一区 | 一区二区三区精品在线视频 | 久久综合精品国产一区二区三区 | 免费高清在线观看成人 | 久草电影免费在线观看 | 黄色日视频 | 最新免费中文字幕 | 97成人资源 | 日韩一区二区三区免费电影 | 99久久精品免费看国产四区 | 亚洲精品国产日韩 | 九九在线播放 | 日韩av女优视频 | 中文字幕在线观看完整版 | 久久综合久久综合久久 | 91精品国产一区二区在线观看 | 国产午夜一级毛片 | 免费高清在线观看成人 | 日韩色中色 | 在线观看a视频 | 91大神免费在线观看 | 精品国产美女在线 | 日韩国产精品久久久久久亚洲 | 夜夜爽88888免费视频4848 | 国际精品久久久久 | 色国产在线| 中文字幕亚洲欧美日韩 | 91视频麻豆视频 | 九九国产精品视频 | 在线免费观看一区二区三区 | 国产成人精品国内自产拍免费看 | 亚洲妇女av | 伊人在线视频 | 一区三区视频 | 亚洲精品在线二区 | 国产精品第10页 | 国产馆在线播放 | 久久久精品欧美一区二区免费 |