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

淺談C++開發(fā)中數(shù)據(jù)結構和算法的分離

開發(fā) 后端 算法
本文介紹的是在C++開發(fā)中,數(shù)據(jù)結構和算法的分離,希望對你有幫助,一起來看。

相信每一個在windows下編過程序的人都或多或少地用過位圖,大多數(shù)人是從網上下載一些成熟完善的DIB類庫來使用(例如CxImage、CDIB),少數(shù)人有一套自己封裝好的DIB類庫,方便以后的擴充和使用。(近幾年GDI+異軍突起,在某些處理方面,如:縮放、旋轉、漸變填充等它提供無與倫比的速度和質量,但,如果你想做一個完善的圖像處理程序,直接使用它會給架構設計帶來困難,你可以用adapter模式封裝它后再使用)。

這時候,如果你需要一些圖像處理操作你會怎么辦呢?很多沒有OO經驗的C++程序員(例如一年前的我)可能會這樣做:在類中直接添加方法。

  1. int FClamp0255 (int nValue) {return max (0, min (0xFF, nValue));} // 飽和到0--255  
  2. class FCObjImage  
  3. {  
  4.  public :  
  5. Invert () ;  
  6. AdjustRGB (int R, int G, int B) ;  
  7. } ;  
  8. void FCObjImage::Invert ()  
  9. {  
  10.  if ((GetHandle() == NULL) || (ColorBits() < 24))  
  11. return ;  
  12.  int nSpan = ColorBits() / 8 ; // 每象素字節(jié)數(shù)3, 4  
  13.  for (int y=0 ; y < Height() ; y++)  
  14.  {  
  15. BYTE * pPixel = GetBits (y) ;  
  16. for (int x=0 ; x < Width() ; x++, pPixel += nSpan)  
  17. {  
  18.  pPixel[0] = ~pPixel[0] ;  
  19.  pPixel[1] = ~pPixel[1] ;  
  20.  pPixel[2] = ~pPixel[2] ;  
  21. }  
  22.  }  
  23. }  
  24. void FCObjImage::AdjustRGB (int R, int G, int B)  
  25. {  
  26.  if ((GetHandle() == NULL) || (ColorBits() < 24))  
  27. return ;  
  28.  int nSpan = ColorBits() / 8 ; // 每象素字節(jié)數(shù)3, 4  
  29.  for (int y=0 ; y < Height() ; y++)  
  30.  {  
  31. BYTE * pPixel = GetBits (y) ;  
  32. for (int x=0 ; x < Width() ; x++, pPixel += nSpan)  
  33. {  
  34.  pPixel[0] = FClamp0255 (pPixel[0] + B) ;  
  35.  pPixel[1] = FClamp0255 (pPixel[1] + G) ;  
  36.  pPixel[2] = FClamp0255 (pPixel[2] + R) ;  
  37. }  
  38. }  
  39. }  

這里舉了兩個例子(分別實現(xiàn)反色,調節(jié)RGB值功能),現(xiàn)實中會有大量的此類操作:亮度、對比度、飽和度......現(xiàn)在回想一下,你添加這些方法的步驟是什么,Ooooooooo,RCP(我同事的發(fā)明,全稱:rapid copy paste^-^),第一步一定是從上面復制一塊代碼下來,然后改掉其中的接口和處理部分。雖然這里的示范代碼很短小,不會連同bug一起復制,但,定時炸彈卻又多了一個。有天,你的boss告訴你:我不能忍受長時間的等待,請給我加個進度條.....。你也許會加個全局變量,也許會給每個函數(shù)加個參數(shù),但不變的是:你必須修改所有這些處理函數(shù)的代碼,內心的咒罵并不會使你少改其中的任何一個。而此時,bug已經在旁邊伺機而動了...然而苦日子遠沒熬到頭,一個月后,你心血來潮的老板會讓你在其中加上區(qū)域處理的功能,再一個月后......

回頭重新看看代碼?沒錯,除了紅色的代碼外,其他地方一摸一樣,那能不能把這些算法分離抽出來呢?可能我們馬上會想到標準庫中qsort和windows中常用的回調方法。好,讓我們實作一下:

  1. void Pixel_Invert (BYTE * pPixel)  
  2. {  
  3.  pPixel[0] = ~pPixel[0] ;  
  4.  pPixel[1] = ~pPixel[1] ;  
  5.  pPixel[2] = ~pPixel[2] ;  
  6. }  
  7. void FCObjImage::PixelProcess (void(__cdecl*PixelProc)(BYTE * pPixel))  
  8. {  
  9.  if ((GetHandle() == NULL) || (ColorBits() < 24))  
  10. return ;  
  11.  int nSpan = ColorBits() / 8 ; // 每象素字節(jié)數(shù)3, 4  
  12.  for (int y=0 ; y < Height() ; y++)  
  13.  {  
  14. BYTE * pPixel = GetBits (y) ;  
  15. for (int x=0 ; x < Width() ; x++, pPixel += nSpan)  
  16. {  
  17.  PixelProc (pPixel) ;  
  18. }  
  19.  }  
  20. }  
  21. void FCObjImage::Invert ()  
  22. {  
  23.  PixelProcess (Pixel_Invert) ;   

嗯,看樣子不錯,算法被剝離到一個單一函數(shù)中,我們似乎已經解決問題了。處理Invert它完成的非常好,但處理AdjustRGB時遇到了麻煩,RGB那三個調節(jié)參數(shù)怎么傳進去呢?我們的接口參數(shù)只有一個,通過添加全局變量/成員變量?這是一個辦法,但隨著類方法的增加,程序的可讀性和維護性會急劇的下降,反而倒不如改之前的效果好。

那么如何實現(xiàn)高度的抽象和良好的接口呢?我們現(xiàn)場請來OO(object orient),請它來講一下它的實現(xiàn)。設計如下派生關系:

  1. class FCSinglePixelProcessBase  
  2. {  
  3.  public :  
  4. virtual void ProcessPixel (int x, int y, BYTE * pPixel) PURE ;  
  5. } ;  
  6. class FCPixelInvert : public FCSinglePixelProcessBase  
  7. {  
  8.  public :  
  9. virtual void ProcessPixel (int x, int y, BYTE * pPixel) ;  
  10. } ;   
  11. void FCPixelInvert::ProcessPixel (int x, int y, BYTE * pPixel)  
  12. {  
  13.  pPixel[0] = ~pPixel[0] ; pPixel[1] = ~pPixel[1] ; pPixel[2] = ~pPixel[2] ;  
  14. }   
  15. class FCPixelAdjustRGB : public FCSinglePixelProcessBase  
  16. {  
  17.  public :  
  18. FCPixelAdjustRGB (int DeltaR, int DeltaG, int DeltaB) ;  
  19. virtual void ProcessPixel (int x, int y, BYTE * pPixel) ;  
  20.  protected :  
  21. int m_iDeltaR, m_iDeltaG, m_iDeltaB ;  
  22. } ;   
  23. void FCPixelAdjustRGB::ProcessPixel (int x, int y, BYTE * pPixel)  
  24. {  
  25.  pPixel[0] = FClamp0255 (pPixel[0] + m_iDeltaB) ;  
  26.  pPixel[1] = FClamp0255 (pPixel[1] + m_iDeltaG) ;  
  27.  pPixel[2] = FClamp0255 (pPixel[2] + m_iDeltaR) ;  
  28. }  

然后我們修改image類如下:

  1. #include "PixelProcessor.h"  
  2. class FCObjImage  
  3. {  
  4.  public :  
  5. void PixelHandler (FCSinglePixelProcessBase & PixelProcessor, FCObjProgress * progress = NULL) ;  
  6. } ;  
  7. void FCObjImage::PixelHandler (FCSinglePixelProcessBase & PixelProcessor, FCObjProgress * progress)  
  8. {  
  9.  if (GetHandle() == NULL)  
  10. return ;  
  11.  int nSpan = ColorBits() / 8 ; // 每象素字節(jié)數(shù)3, 4  
  12.  for (int y=0 ; y < Height() ; y++)  
  13.  {  
  14. BYTE * pPixel = GetBits (y) ;  
  15. for (int x=0 ; x < Width() ; x++, pPixel += nSpan)  
  16. {  
  17.  PixelProcessor.ProcessPixel (x, y, pPixel) ;  
  18. }  
  19. if (progress != NULL)  
  20.  progress->SetProgress (y * 100 / Height()) ;  
  21.  }  
  22. }  
  23. void FCObjImage::Invert (FCObjProgress * progress)  
  24. {  
  25.  PixelHandler (FCPixelInvert(), progress) ;  
  26. }   
  27. void FCObjImage::AdjustRGB (int R, int G, int B, FCObjProgress * progress)  
  28. {  
  29.  PixelHandler (FCPixelAdjustRGB (R,G,B), progress) ;  

(以上只是一個基本框架,你可以很輕易的把區(qū)域處理的參數(shù)添加進去-通過構造時傳遞一個RECT參數(shù)。)

對象真的是一個很奇妙的東西,它可以對外提供一個簡單的接口,而自身又可以封裝上很多附加信息。

好,現(xiàn)在讓我們來檢驗一下剛才的成果:添加一個給圖像奇數(shù)行置黑,給偶數(shù)行置白的操作。

  1. class FCPixelTest : public FCSinglePixelProcessBase  
  2. {  
  3.  public :  
  4. virtual void ProcessPixel (int x, int y, BYTE * pPixel) ;  
  5. } ;   
  6. void FCPixelTest::ProcessPixel (int x, int y, BYTE * pPixel)  
  7. {  
  8.  if (y % 2) pPixel[0]=pPixel[1]=pPixel[2] = 0 ;   
  9.  // 奇數(shù)行   
  10.  else   
  11. pPixel[0]=pPixel[1]=pPixel[2] = 0xFF ;   
  12. // 偶數(shù)行  

然后進行如下調用:

  1. PixelHandler (FCPixelTest(), progress) ; 

多么的和諧美妙,設計算法的人員只需寫出自己的算法,而不用去考慮怎么讓它支持進度條和區(qū)域這些問題。感覺這就象一把設計優(yōu)良的AK,你可以不斷的往里添加子彈(對象)^-^

至此,我們應該已經大功告成了。還有問題嗎?

等等,別忙,有些地方不太對,我添加這個算法后,怎么編譯這么久啊。

問題就出在那個不起眼的:

  1. #include "PixelProcessor.h" 

image是圖像處理的最底層對象,工程中的所有文件都直接或間接地包含它,因此,任何對image.h本身及它所包含的.h的修改都會引起幾乎整個工程的build,這當然是無法忍受的,解決的辦法是使用“前置聲明”,因為在PixelHandler接口中我們只需要它的引用(也即是說:我(接口)并不需要知道傳給我的類的內部結構,給我一個32(64)的內存地址就OK了)。

因此我們把

  1. #include "PixelProcessor.h" 

替換成:

  1. class FCSinglePixelProcessBase ; // external class 前置聲明 

然后在.cpp文件中再包含PixelProcessor.h,這樣,對PixelProcessor.h的改變僅僅會導致.cpp文件的重新編譯,大大節(jié)約了編譯時間。

總結:

1)可能的話,在編程中永遠也別去想“拷貝代碼”這個字眼。畢竟,OO就是為了抽象和代碼重用才誕生的。

2)除非必要,否則類的成員變量和函數(shù)的參數(shù)盡量用指針或引用代替,這樣做可以在.h中盡可能地少包含其他.h文件,而用前置聲明來替代,以此來減少編譯時間和以后可能會產生的交叉包含。

3)最后說一下效率問題:有些朋友可能會說每個像素都調用虛函數(shù)會影響性能,這的確,但實際的損失遠沒有想象的大。我實測了一下:對1024*768的圖片進行反片處理,速度只有5%左右的損失,進行復雜處理(亮度/對比度/gamma)時損失可完全忽略,畢竟多出來的那部分代碼只是進出棧和查表,而不是浮點除這樣耗時的指令。

責任編輯:于鐵 來源: 互聯(lián)網
相關推薦

2009-08-13 18:34:49

C#數(shù)據(jù)結構和算法

2009-06-24 09:52:21

哈希表

2009-08-03 17:38:12

排序算法C#數(shù)據(jù)結構

2023-10-16 22:13:57

HBase開源數(shù)據(jù)庫

2023-12-13 10:01:15

數(shù)據(jù)結構c++編程

2012-02-02 10:21:05

單鏈表nexthead

2010-01-27 15:58:35

C++數(shù)據(jù)結構

2011-04-11 11:23:17

隊列數(shù)據(jù)結構

2022-02-22 15:27:46

數(shù)據(jù)結構容器算法

2020-08-12 08:30:20

數(shù)據(jù)結構算法

2011-04-21 17:32:15

CC++

2021-06-08 06:01:00

C++數(shù)據(jù)結構向量和數(shù)組

2019-04-14 22:22:28

Python數(shù)據(jù)結構算法

2021-01-28 07:33:34

JavaScript鏈表數(shù)據(jù)

2011-04-11 12:48:36

隊列數(shù)據(jù)結構C++

2011-04-11 12:22:11

數(shù)據(jù)結構C++

2024-01-15 06:01:36

C++數(shù)組

2011-04-21 16:57:56

staticextern

2011-04-11 13:00:08

C++結構體枚舉

2021-06-08 10:41:00

Go語言算法
點贊
收藏

51CTO技術棧公眾號

26uuu亚洲综合色| 精品1区2区3区4区| 91成人免费电影| 亚洲成人第一| 精品国产亚洲av麻豆| 影音先锋亚洲精品| 国产亚洲激情视频在线| 182午夜在线观看| 色噜噜狠狠狠综合欧洲色8| www.成人在线| 国产欧美一区二区| 国产在线视频在线观看| 国产一区国产二区国产三区| 91精品国产丝袜白色高跟鞋| 成熟了的熟妇毛茸茸| av小片在线| 国产成人综合亚洲91猫咪| 午夜精品理论片| 人妻aⅴ无码一区二区三区| 99精品女人在线观看免费视频| 亚洲第一在线综合网站| 在线免费观看成人| 天天干天天草天天射| 久久草av在线| 欧洲亚洲免费视频| 538精品在线视频| 国产99久久精品一区二区300| 日韩欧美一区电影| 爱情岛论坛vip永久入口| 啦啦啦中文在线观看日本| 国产亚洲午夜高清国产拍精品 | 欧美极品少妇无套实战| 9色在线观看| 91蜜桃免费观看视频| 147欧美人体大胆444| 最新在线中文字幕| 噜噜噜在线观看免费视频日韩| 九九久久综合网站| 精品在线观看一区| 精品国内自产拍在线观看视频 | 五月激情丁香一区二区三区| 综合国产精品久久久| 黄色的视频在线免费观看| 99精品热视频| 国产精品一码二码三码在线| av免费观看网址| 久久av中文字幕片| 国产精品美女主播| 波多野结衣日韩| 小嫩嫩精品导航| 97久久久免费福利网址| 青娱乐免费在线视频| 亚洲精彩视频| 久久久av亚洲男天堂| 成年人视频软件| 成人无号精品一区二区三区| 亚洲色在线视频| 国产三级视频网站| 欧洲专线二区三区| 亚洲片在线观看| 国产精品无码一区二区三区| 亚洲欧美tv| 亚洲精品自拍第一页| 天天插天天射天天干| 欧美绝顶高潮抽搐喷水合集| 亚洲电影av在线| 熟妇人妻久久中文字幕| 日韩大胆成人| 亚洲精品影视在线观看| 性欧美13一14内谢| 欧美亚洲在线日韩| 亚洲夜晚福利在线观看| 熟女少妇一区二区三区| 色天下一区二区三区| 日韩av在线免费观看一区| 美女黄色一级视频| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 天堂av一区二区| 在线免费观看黄色av| 成人免费在线视频| 天堂а√在线中文在线| 678在线观看视频| 色综合久久88色综合天天6| 三级在线免费看| 精品国产亚洲一区二区三区大结局| 日韩一区二区中文字幕| 日韩欧美中文字幕公布| 在线视频观看91| 日韩中文字幕在线一区| а√天堂8资源中文在线| 久久蜜桃一区二区| 一区二区三区我不卡| 中文字幕中文字幕在线中高清免费版| 亚洲线精品一区二区三区八戒| 国产午夜福利100集发布| 经典三级一区二区| 日韩一级免费观看| a毛片毛片av永久免费| 99久久99久久精品国产片果冰| 精品中文字幕乱| 在线观看免费国产视频| 久久精品国产精品亚洲红杏| 国产精品二区在线| 国产精品免费播放| 一个色综合网站| 精品久久久久久无码国产| 国产在线视频欧美一区| 日韩精品高清视频| 老司机成人免费视频| 国产精品日韩| 91日本在线视频| 视频一区二区在线播放| 亚洲特级片在线| 欧美精品99久久| 国产一区二区三区免费观看在线| 亚洲欧美国产精品专区久久| 久草视频在线资源| 久久精品国产99国产| 久99久在线| 99视频在线免费播放| 国产高清免费在线播放| 亚洲一区在线观看免费观看电影高清| 亚洲性生活网站| 精品av导航| 久久成人综合视频| 中文字幕一区二区在线视频 | 日本aⅴ大伊香蕉精品视频| 国产乱人乱偷精品视频| 国产日产欧产精品推荐色| 国产玉足脚交久久欧美| 中文字幕日本一区| 在线激情影院一区| 亚洲乱码国产乱码精品| 成人午夜电影网站| 影音先锋男人的网站| 成人免费一区| 亚洲桃花岛网站| 日本道在线观看| 成人夜色视频网站在线观看| 尤物国产精品| 欧美videos粗暴| 国产亚洲精品久久久久久| 日韩免费不卡视频| 国产91精品一区二区麻豆网站| 一区二区三区四区不卡| 欧美日韩视频免费观看| 亚洲美女中文字幕| 久久精品视频日本| 国产精品一区二区三区四区| 久久免费视频2| 日韩城人网站| 色噜噜狠狠色综合网图区| 无码人妻熟妇av又粗又大| 成人免费观看视频| 男女猛烈激情xx00免费视频| 凹凸av导航大全精品| 久久91精品国产91久久久| 国产免费黄色录像| 国产精品久久免费看| 免费看污污网站| 日韩激情图片| 国产精品免费一区二区三区都可以| 狠狠v欧美ⅴ日韩v亚洲v大胸| 狠狠久久亚洲欧美专区| 国产精品无码一区二区三区| 老牛国产精品一区的观看方式| 欧美日韩在线高清| 亚洲爱爱视频| 中文字幕亚洲综合久久筱田步美| 亚洲天堂男人网| 亚洲欧美在线观看| 亚洲成人av免费观看| 欧美在线三级| 成人av免费在线看| 福利在线免费视频| 亚洲男人av电影| 欧美在线视频精品| 1区2区3区精品视频| 亚洲欧美日韩网站| 精品福利电影| 欧美高清一区二区| 日韩漫画puputoon| 美女国内精品自产拍在线播放| 亚洲精品喷潮一区二区三区| 狠狠综合久久av一区二区小说| 国产一区二区三区四区五区六区| 麻豆精品国产传媒mv男同| 久久香蕉视频网站| 亚洲制服欧美另类| 成人高h视频在线| 男女在线观看视频| 国产亚洲视频中文字幕视频| 99久久精品国产一区二区成人| 五月婷婷综合激情| 午夜激情福利电影| av在线一区二区| 不卡的av中文字幕| 在线播放日韩| 亚洲午夜在线观看| 国产精品香蕉| 91精品国产自产在线| 不卡视频观看| 日韩三级成人av网| 天堂在线中文字幕| 51精品国自产在线| 精品成人av一区二区在线播放| 日韩一区欧美一区| 久久中文字幕人妻| 国产一区二区三区精品欧美日韩一区二区三区| 欧美久久在线观看| 成人羞羞在线观看网站| 国产精品一区二区你懂得| 日韩欧美精品一区二区综合视频| 欧美激情精品在线| 9色在线观看| 日韩精品视频在线播放| 国产毛片在线视频| 91久久精品国产91性色tv| 精品一区二区三区四| 国产精品欧美综合在线| 国产精品300页| 国产成人精品综合在线观看 | 美女的胸无遮挡在线观看| 日韩中文综合网| 男男电影完整版在线观看| 欧美岛国在线观看| 国产精品老熟女视频一区二区| 欧美日韩日本国产| 久久久久久久久久久97| 18欧美亚洲精品| 免费人成又黄又爽又色| 成人午夜视频网站| 国产高清999| 青青草一区二区三区| 久久婷婷国产精品| 亚洲福利久久| 真实国产乱子伦对白视频| 先锋资源久久| 一区二区视频在线免费| gogogo高清在线观看一区二区| 久久国产欧美精品| aaa国产精品视频| 国产精品视频男人的天堂| 91精品产国品一二三产区| 91精品国产高清| av免费不卡国产观看| 色中色综合影院手机版在线观看| 免费av网站在线观看| 亚洲欧洲日产国码av系列天堂| 天天干天天操av| 亚洲精品乱码久久久久久金桔影视 | 亚洲高清二区| 欧美乱大交xxxxx潮喷l头像| 国内在线观看一区二区三区| 日韩精品一区二区三区四| 欧美日韩精品| 日本中文字幕亚洲| 一区二区精品| 亚洲精品乱码久久久久久自慰| 久久久久久自在自线| 久久综合久久色| 免费成人在线影院| 久久国产这里只有精品| 精品午夜一区二区三区在线观看| 在线视频一二区| 国产99久久久国产精品潘金 | 亚洲高清在线一区| 国产一区二区三区高清| 日韩大片在线免费观看| 日本免费一区二区三区| 色综合色综合| 日韩精品手机在线观看| 日韩图片一区| 国产精品免费成人| 久久电影网电视剧免费观看| 中文字幕第66页| 成人午夜激情片| av女人的天堂| 国产精品国产三级国产有无不卡 | 欧美国产一级| 波多野结衣激情| 午夜视频一区| 男人天堂999| 美女网站视频久久| 欧美日韩一区二区区别是什么| 99精品视频一区| 午夜国产福利视频| 亚洲影院在线观看| 无码aⅴ精品一区二区三区| 欧美日本在线播放| 色窝窝无码一区二区三区| 国产一区二区三区丝袜| 在线播放免费av| 日韩美女视频在线观看| 欧美久久亚洲| 日本精品一区二区三区视频| 欧美va亚洲va日韩∨a综合色| 日本熟妇人妻xxxxx| 国产在线不卡一区| 熟女少妇一区二区三区| 亚洲猫色日本管| 日韩黄色一级视频| 精品国产一区二区三区久久久蜜月 | 99riav视频在线观看| 国产精品男人爽免费视频1| xvideos.蜜桃一区二区| 在线日韩av永久免费观看| 99国产精品视频免费观看一公开| 国产九九在线观看| 91免费观看视频在线| 顶臀精品视频www| 色哟哟一区二区| 成人午夜视频一区二区播放| 最近2019中文字幕大全第二页| 国产白浆在线免费观看| 亚洲一区二区在线| 首页国产精品| 国产aaa一级片| 成人免费黄色大片| 69av.com| 在线成人午夜影院| 国产亚洲依依| 欧美怡红院视频一区二区三区| 视频一区日韩| 在线无限看免费粉色视频| 玖玖视频精品| 人妻少妇精品视频一区二区三区| 一区二区三区四区在线| 一区二区日韩视频| 亚洲一区999| 国模冰冰炮一区二区| 国产乱码精品一区二区三区日韩精品 | 精品国产乱码久久久久久久| 黄色的网站在线观看| 国产精品嫩草视频| 精品久久电影| 任你操这里只有精品| 99精品欧美一区二区蜜桃免费| 国产亚洲美女久久| 综合图区亚洲| 91免费在线视频网站| 日韩精品欧美| 黄色手机在线视频| 欧美激情一区二区三区蜜桃视频 | 色菇凉天天综合网| 欧洲综合视频| 日本中文字幕成人| 国产99久久久国产精品成人免费| 99热在线这里只有精品| 久久综合色播五月| 日本免费在线观看视频| 亚洲欧美日韩一区在线| a一区二区三区| 免费成人在线观看av| 久久久久久黄| 欧美 日韩 成人| 欧美午夜精品久久久久久超碰| 77导航福利在线| 国产精品丝袜白浆摸在线| 日韩在线理论| 波多野结衣在线免费观看| 亚洲男人的天堂在线aⅴ视频| 99久久免费国产精精品| 久久99亚洲热视| 6080成人| 91好吊色国产欧美日韩在线| 久久亚洲免费视频| 特级西西444www大胆免费看| 日韩在线观看免费高清完整版| 国内不卡的一区二区三区中文字幕| 热这里只有精品| 国产91精品免费| 国产精品乱子伦| 伊人伊人伊人久久| 精品麻豆剧传媒av国产九九九| 日本一级黄视频| 91亚洲精品久久久蜜桃网站| 成人免费视频国产免费| 日韩一区av在线| 精品五月天堂| www.色偷偷.com| 一卡二卡三卡日韩欧美| 日本国产在线| 成人午夜一级二级三级| 亚洲毛片一区| 国产免费嫩草影院| 日韩精品中文字幕在线不卡尤物 | 五月天欧美精品| 国产一级网站视频在线| 亚洲影视中文字幕| 国产精品美女| caoporn91| 日韩精品中文字幕久久臀| 懂色aⅴ精品一区二区三区| 黄色a级片免费看| 久久久99精品免费观看不卡| 国产免费不卡av| 国产经典一区二区| 国内精品亚洲| 殴美一级黄色片|