锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品NV久久久久久久久久,久久综合狠狠色综合伊人,久久精品国产亚洲av水果派http://www.shnenglu.com/cugdj/archive/2010/02/05/107266.html灝忓洓灝忓洓Fri, 05 Feb 2010 08:54:00 GMThttp://www.shnenglu.com/cugdj/archive/2010/02/05/107266.htmlhttp://www.shnenglu.com/cugdj/comments/107266.htmlhttp://www.shnenglu.com/cugdj/archive/2010/02/05/107266.html#Feedback0http://www.shnenglu.com/cugdj/comments/commentRss/107266.htmlhttp://www.shnenglu.com/cugdj/services/trackbacks/107266.html鍘熺悊灝辨槸榪欐牱銆傝嚜宸卞仛浜嗕竴涓猰p3杞琽gg鐨勫伐紼嬶紝杞崲榪囩▼涓璵p3鐨則ag淇℃伅閮芥病鏈変涪澶便?br>閫熷害榪樺彲浠ワ紝闇瑕佺殑浜哄彲浠ヨ嚜宸遍槄璇諱竴涓嬩唬鐮佽繘琛屼紭鍖栥?br>婧愪唬鐮佸湪榪欓噷涓嬭澆銆?

灝忓洓 2010-02-05 16:54 鍙戣〃璇勮
]]>
DLL紿椾綋涓璓reTranslateMessage鐨勮В鍐蟲柟妗?/title><link>http://www.shnenglu.com/cugdj/archive/2009/01/06/71299.html</link><dc:creator>灝忓洓</dc:creator><author>灝忓洓</author><pubDate>Tue, 06 Jan 2009 02:24:00 GMT</pubDate><guid>http://www.shnenglu.com/cugdj/archive/2009/01/06/71299.html</guid><wfw:comment>http://www.shnenglu.com/cugdj/comments/71299.html</wfw:comment><comments>http://www.shnenglu.com/cugdj/archive/2009/01/06/71299.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/cugdj/comments/commentRss/71299.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/cugdj/services/trackbacks/71299.html</trackback:ping><description><![CDATA[<p>鐢變簬鍦―LL紿椾綋涓渶瑕佷嬌鐢–ToolTipCtrl鏉ュ疄鐜版彁紺哄姛鑳斤紝<br>鎵浠ヨ閲嶈澆PreTranslateMessage,浠g爜濡備笅</p> <p>BOOL CMyWnd::PreTranslateMessage(MSG* pMsg) <br>{<br> m_toolTip.RelayEvent(pMsg);  <br> return CGameWnd::PreTranslateMessage(pMsg);<br>}</p> <p>浣嗘槸鐢變簬CMyWnd鏄湪DLL涓紝鎵浠ラ噸杞絇reTranslateMessage鏃犳晥錛?br>鍏蜂綋鍘熷洜鎴戝繕璁頒簡錛屽弽姝g綉涓婇兘鍙互鎼滅儲鍒般備笉榪囪В鍐蟲柟妗堥兘緇欑殑<br>涓嶆槸寰堟槑紜紝鍦ㄨ繖閲屾垜鎶婃垜鐨勮В鍐蟲柟娉曡褰曚笅鏉ワ紝鐪佸緱浠ュ悗蹇樻帀浜嗐?br>涓昏鏄湪鍒涘緩CMyWnd瀹炰緥鐨勬椂鍊欐妸紿楀彛鎸囬拡瀛樹笅鏉ワ紝鐒跺悗浣跨敤鍏ㄥ眬<br>娑堟伅閽╁瓙鎵цCMyWnd::PreTranslateMessage錛屼唬鐮佸涓?/p> <p>1.瀹氫箟鍏ㄥ眬鍙橀噺<br> HHOOK g_hHook = 0;<br> CMyWnd* g_pMyWnd = NULL;</p> <p>2.瀹夎鍏ㄥ眬閽╁瓙錛岃鍦―LL涓畨瑁?br> g_hHook = ::SetWindowsHookEx(WH_GETMESSAGE, HookProc, 0, ::GetCurrentThreadId());</p> <p>3.鍒涘緩紿椾綋鐨勬椂鍊欎繚鐣欐寚閽?br> m_pMyWnd = new CMyWnd();<br> g_pMyWnd = m_pMyWnd;</p> <p>4.閽╁瓙鍑芥暟<br>LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)<br>{<br> MSG* pMsg = (MSG*)lParam;<br> if(g_pMyWnd && (pMsg->hwnd == g_pMyWnd->m_hWnd))<br> {<br>  g_pMyWnd->PreTranslateMessage(pMsg);<br> }<br> return CallNextHookEx(g_hHook, nCode, wParam, lParam);<br>}</p> <p>5.閫鍑虹殑鏃跺欏埆蹇樹簡鍗歌澆閽╁瓙<br> if(g_hHook) <br>  UnhookWindowsHookEx(g_hHook);</p> <img src ="http://www.shnenglu.com/cugdj/aggbug/71299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/cugdj/" target="_blank">灝忓洓</a> 2009-01-06 10:24 <a href="http://www.shnenglu.com/cugdj/archive/2009/01/06/71299.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏁版嵁緇撴瀯闅忕瑪6(琛ㄨ揪寮忔眰鍊?http://www.shnenglu.com/cugdj/archive/2008/01/04/40415.html灝忓洓灝忓洓Fri, 04 Jan 2008 11:59:00 GMThttp://www.shnenglu.com/cugdj/archive/2008/01/04/40415.htmlhttp://www.shnenglu.com/cugdj/comments/40415.htmlhttp://www.shnenglu.com/cugdj/archive/2008/01/04/40415.html#Feedback0http://www.shnenglu.com/cugdj/comments/commentRss/40415.htmlhttp://www.shnenglu.com/cugdj/services/trackbacks/40415.html闃呰鍏ㄦ枃

灝忓洓 2008-01-04 19:59 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯闅忕瑪5(浜屽弶鎺掑簭鏍?http://www.shnenglu.com/cugdj/archive/2008/01/01/40197.html灝忓洓灝忓洓Tue, 01 Jan 2008 13:49:00 GMThttp://www.shnenglu.com/cugdj/archive/2008/01/01/40197.htmlhttp://www.shnenglu.com/cugdj/comments/40197.htmlhttp://www.shnenglu.com/cugdj/archive/2008/01/01/40197.html#Feedback0http://www.shnenglu.com/cugdj/comments/commentRss/40197.htmlhttp://www.shnenglu.com/cugdj/services/trackbacks/40197.html浜屽弶鎺掑簭鏍戯紝鍙堢О浜屽弶鏌ユ壘鏍戯紝宸﹀瓙鏍戠粨鐐瑰間竴寰嬪皬浜庣埗緇撶偣錛屽彸瀛愭爲緇撶偣鍊間竴寰嬪ぇ浜庣埗緇撶偣錛屾煡鎵懼鉤鍧囩畻娉曞鏉傚害涓篛(logn)銆?br>榪樻槸閭i亾緇熻鍗曡瘝鏁扮洰鐨勯鐩紝浣跨敤浜屽弶鎺掑簭鏍戞潵瑙e喅錛屾煡鎵懼拰鎻掑叆浠ュ強緇熻鏁扮洰浣跨敤涓涓嚱鏁拌В鍐籌紝姣斾嬌鐢ㄥ搱甯岃〃鐨勪紭鍔垮湪浜庯紝涓簭閬嶅巻杈撳嚭緇撴灉錛屽崟璇嶆槸鏈夊簭鐨勩?/p>

紼嬪簭涓渶瑕佹敞鎰忕殑鍦版柟錛岄噴鏀炬爲緇撶偣鐨勬椂鍊欙紝瑕佷嬌鐢ㄥ悗緇亶鍘嗭紝鍏堥噴鏀懼瓙緇撶偣鍚庢墠閲婃斁鏍圭粨鐐廣?/p>

/* -------------------------------------------------------------------------
// 鏂囦歡鍚?nbsp; 錛?nbsp;binarytree.h
// 鍒涘緩鑰?nbsp; 錛?nbsp; dj
// 鍒涘緩鏃墮棿 錛?nbsp;2008-1-1
// 鍔熻兘鎻忚堪 錛?nbsp;浜屽弶鎺掑簭鏍?br>// -----------------------------------------------------------------------
*/

#ifndef __BINARYTREE_H__
#define __BINARYTREE_H__

#define SAFE_DELETE(p) {if(p) { delete [] (p); (p) = NULL;}}

struct TreeNode
{
    TreeNode(
const char* s):
    counter(
1), left(NULL), right(NULL)
    
{
        name 
= new char[strlen(s)+1];
        strcpy(name, s);
    }

    
~TreeNode()
    
{
        SAFE_DELETE(name);
    }

    
char* name;
    
int counter;
    TreeNode
* left;
    TreeNode
* right;
}
;

class BinaryTree
{

public:
    BinaryTree():m_pRoot(NULL)
    
{}
    
~BinaryTree()
    
{
        FreeTree(m_pRoot);
    }

    
void Lookup(const char* sName)
    
{
        TreeNode
** p = &m_pRoot;
        
while(*p)
        
{
            
int cmp = strcmp(sName, (*p)->name);
            
if (cmp<0)
                p 
= &((*p)->left);
            
else if (cmp>0)
                p 
= &((*p)->right);
            
else                        //found the word
            {
                ((
*p)->counter)++;        //increase the counter
                return;
            }

        }

        
// not found,  then add the word node.
        TreeNode* pNode = new TreeNode(sName);
        
*= pNode;
    }

    
void Dump(const char* sFile)
    
{
        ofstream f(sFile);
        Travel(m_pRoot, f);
        f.close();
    }

private:
    
void Travel(TreeNode* pNode, ofstream& f)
    
{
        
if (!pNode)
            
return;
        Travel(pNode
->left, f);
        f
<<pNode->name<<"  "<<pNode->counter<<endl;
        Travel(pNode
->right, f);
    }

    
void FreeTree(TreeNode* pNode)
    
{
        
if(!pNode)
            
return;
        FreeTree(pNode
->left);
        FreeTree(pNode
->right);
        delete pNode;        
    }

private:
    TreeNode
* m_pRoot;
}
;

#endif //__BINARYTREE_H__

int main(int argc, char* argv[])
{
    BinaryTree tree;
    ifstream f(
"c:\\ip.txt");
    
string s;
    
while(f>>s)
    
{
        tree.Lookup(s.c_str());
    }

    tree.Dump(
"c:\\stat.txt");
    
return 0;
}


灝忓洓 2008-01-01 21:49 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯闅忕瑪4(鎶樺崐鏌ユ壘)http://www.shnenglu.com/cugdj/archive/2008/01/01/40175.html灝忓洓灝忓洓Tue, 01 Jan 2008 09:59:00 GMThttp://www.shnenglu.com/cugdj/archive/2008/01/01/40175.htmlhttp://www.shnenglu.com/cugdj/comments/40175.htmlhttp://www.shnenglu.com/cugdj/archive/2008/01/01/40175.html#Feedback0http://www.shnenglu.com/cugdj/comments/commentRss/40175.htmlhttp://www.shnenglu.com/cugdj/services/trackbacks/40175.htmlbsearch(const void *, const void *, size_t, size_t, int (__cdecl *)(const void *, const void *));
鏈鍚庝竴涓弬鏁拌姹備竴涓寚鍚戞瘮杈冨嚱鏁扮殑鎸囬拡銆傜▼搴忚璁″疄璺典笂鍐欓亾錛屼負bsearch鎻愪緵涓涓猭ey灝辮繖涔堣垂鍔詫紝鍐欎竴涓ソ鐨勯氱敤鐨勬帓搴忕▼搴忎篃涓嶅鏄擄紝鍗充嬌榪欐牱錛屼嬌鐢╞search鑰屼笉鏄嚜宸卞彟澶栧啓浠嶇劧鏄釜濂戒富鎰忋?br>澶氬勾鐨勫巻鍙茶瘉鏄庯紝紼嬪簭鍛樿兘鎶婁簩鍒嗘绱㈢▼搴忓啓姝g‘涔熸槸寰堜笉瀹規槗鐨?Over the years, binary search has proven surprisingly hard for programmer to get right)銆?br>
浜庢槸鑷繁鐢ㄦā鏉垮啓涓涓姌鍗婃煡鎵懼嚱鏁幫紝鍐欏ソ涓涓崄鍑犺鐨勭▼搴忥紝涔熶笉鏄湅涓婂幓閭d箞綆鍗曠殑浜嬫儏銆?br>
template<typename T>
int binarysearch(const T* tab, int ntab, const T& value)
{
    
int low = 0;
    
int high = ntab;
    
while(low <= high)
    
{
        
int mid = (low+high)/2;
        
if(value<tab[mid])
            high 
= mid - 1;
        
else if (value>tab[mid])
            low 
= mid + 1;
        
else
            
return mid;
    }

    
return -1;
}

嫻嬭瘯紼嬪簭
int main(int argc, char* argv[])
{
    
int a[] = {24678913};
    
int aa = sizeof(a);
    
int n = binarysearch(a, sizeof(a)/sizeof(a[0]), 4);
    cout
<<n<<endl;
    
return 0;
}



灝忓洓 2008-01-01 17:59 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯闅忕瑪3(鍝堝笇琛?http://www.shnenglu.com/cugdj/archive/2007/12/30/40006.html灝忓洓灝忓洓Sun, 30 Dec 2007 07:13:00 GMThttp://www.shnenglu.com/cugdj/archive/2007/12/30/40006.htmlhttp://www.shnenglu.com/cugdj/comments/40006.htmlhttp://www.shnenglu.com/cugdj/archive/2007/12/30/40006.html#Feedback0http://www.shnenglu.com/cugdj/comments/commentRss/40006.htmlhttp://www.shnenglu.com/cugdj/services/trackbacks/40006.html闃呰鍏ㄦ枃

灝忓洓 2007-12-30 15:13 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯闅忕瑪2(蹇熸帓搴?http://www.shnenglu.com/cugdj/archive/2007/12/29/39925.html灝忓洓灝忓洓Sat, 29 Dec 2007 06:31:00 GMThttp://www.shnenglu.com/cugdj/archive/2007/12/29/39925.htmlhttp://www.shnenglu.com/cugdj/comments/39925.htmlhttp://www.shnenglu.com/cugdj/archive/2007/12/29/39925.html#Feedback0http://www.shnenglu.com/cugdj/comments/commentRss/39925.htmlhttp://www.shnenglu.com/cugdj/services/trackbacks/39925.html鍦ㄧ▼搴忚璁″疄璺典笂鐪嬪埌榪欎釜綆鍗曠殑蹇熸帓搴忥紝鐢ㄦā鏉塊噸鏂板啓浜嗕竴閬嶏紝鍔犳繁涓涓嬪嵃璞°傚鉤鍧囩畻娉曞鏉傚害涓篛(nlogn)銆?/p>

鍏朵腑瀵繪壘鏀偣鍏冪礌pivot鏈夊縐嶆柟娉曪紝涓嶅悓鐨勬柟娉曚細瀵艱嚧蹇熸帓搴忕殑涓嶅悓鎬ц兘銆傛牴鎹垎娌繪硶騫寵 瀛愰棶棰樼殑鎬濇兂錛屽笇鏈涙敮鐐瑰厓绱犲彲浠ヤ嬌p[m..n]灝介噺騫沖潎鍦板垎涓轟袱閮ㄥ垎錛屼絾瀹為檯涓婂緢闅懼仛鍒般備笅闈㈢粰鍑哄嚑縐嶅鎵緋ivot鐨勬柟娉曘?/p>

1.閫夋嫨p[m..n]鐨勭涓涓厓绱爌[m]鐨勫間綔涓簆ivot錛?
2.閫夋嫨p[m..n]鐨勬渶鍚庝竴涓厓绱爌[n]鐨勫間綔涓簆ivot錛?
3.閫夋嫨p[m..n]涓棿浣嶇疆鐨勫厓绱爌[k]鐨勫間綔涓簆ivot錛?
4.閫夋嫨p[m..n]鐨勬煇涓涓殢鏈轟綅緗笂鐨勫紁[random(n-m)+m]鐨勫間綔涓簆ivot錛?
銆銆鎸夌収絎?縐嶆柟娉曢殢鏈洪夋嫨pivot鐨勫揩閫熸帓搴忔硶鍙堢О闅忔満鍖栫増鏈殑蹇熸帓搴忔硶錛屽湪瀹為檯搴旂敤涓鏂規硶鐨勬ц兘涔熸槸鏈濂界殑銆傛湰紼嬪簭浣跨敤絎?縐嶆柟娉曘傝姹傝妭鐐圭被鍨嬫敮鎸佹瘮杈冭繍綆楃銆?/p>

template<typename T>
void quicksort(T* v, int n)
{
    
if (n<=1)
        
return;
    
int last = 0;
    
int pivot = rand()%n;
    swap(v, 
0, pivot);
    
for (int i = 1; i < n; i++)
    
{
        
if (v[i]<v[0])
            swap(v, 
++last, i);
    }

    swap(v, last, 
0);
    quicksort(v, last);
    quicksort(v
+last+1, n-last-1);
}


template
<typename T>
void swap(T* v, int i, int j)
{
    T tmp 
= v[i];
    v[i] 
= v[j];
    v[j] 
= tmp;    
}


闅忔墜鍐欎竴涓笉澶ソ鐪嬬殑嫻嬭瘯紼嬪簭

struct str
{
    str(
const char* a)
    
{
        assert(a);
        v 
= new char[strlen(a)+1];
        strcpy(v, a);
    }

    str(
const str& a)
    
{
        assert(a.v);
        v 
= new char[strlen(a.v)+1];
        strcpy(v, a.v);
    }

    
~str()
    
{
        delete [] v;
    }

    
void operator = (const str& a)
    
{
        
if (this == &a)
            
return;
        assert(a.v);
        delete [] v;
        v 
= new char[strlen(a.v)+1];
        strcpy(v, a.v);
    }

    
bool operator == (const str& a) const
    
{
        
return (strcmp(v, a.v)==0);
    }

    
bool operator > (const str& a) const 
    
{
        
return (strcmp(v, a.v)>0);
    }

    
bool operator < (const str& a) const
    
{
        
return (strcmp(v, a.v)<0);
    }

    
char* v;
}
;


int main(int argc, char* argv[])
{
    
int* array = new int [10];
    
for(int i = 0; i < 10; i++)
        array[i] 
= rand();
    quicksort(array, 
10);
    
for(i = 0; i < 10; i++)
    
{
        cout
<<array[i]<<endl;
    }


    str s[] 
= {"bd""e""ba""a"};
    quicksort(s, 
4);
    
for(i = 0; i < 4; i++)
    
{
        cout
<<s[i].v<<endl;
    }

    
return 0;
}




灝忓洓 2007-12-29 14:31 鍙戣〃璇勮
]]>
鏁版嵁緇撴瀯闅忕瑪1(鍫嗘爤)http://www.shnenglu.com/cugdj/archive/2007/12/27/39722.html灝忓洓灝忓洓Thu, 27 Dec 2007 05:15:00 GMThttp://www.shnenglu.com/cugdj/archive/2007/12/27/39722.htmlhttp://www.shnenglu.com/cugdj/comments/39722.htmlhttp://www.shnenglu.com/cugdj/archive/2007/12/27/39722.html#Feedback1http://www.shnenglu.com/cugdj/comments/commentRss/39722.htmlhttp://www.shnenglu.com/cugdj/services/trackbacks/39722.html澶嶄範涓涓嬫暟鎹粨鏋勶紝鐢ㄩ摼琛ㄥ疄鐜頒簡涓涓爢鏍堟ā鏉跨被銆?br>鍐欑殑榪囩▼涓敤鍒頒竴浜涚煡璇嗙偣錛岀鍒頒竴浜涢棶棰橈紝闅忔墜璁頒笅鏉ャ?br>
1錛歮ystack<int> s; mystack<int> s2 = s;
緙栬瘧鍣ㄤ細鎶妔2 = s緙栬瘧鎴愭嫹璐濇瀯閫犲嚱鏁皊2(s)錛屾鏃惰皟鐢ㄧ殑鏄嫹璐濇瀯閫犲嚱鏁幫紝鑰屼笉鏄祴鍊煎嚱鏁?鍒囪)銆?br>鍙﹀鏈夋椂鍊欑紪璇戝櫒榪欑鑷仛鑱槑錛岃嚜鍔ㄨ皟鐢ㄧ鍚堝弬鏁扮被鍨嬬殑鏋勯犲嚱鏁頒細甯︽潵寰堥毦鍙戠幇鐨勯敊璇紝涓轟簡闃叉緙栬瘧鍣ㄨ繖涔堝仛錛屽彲浠ュ湪鏋勯犲嚱鏁板0鏄庡墠鍔爀xplicit鍏抽敭瀛椼?/p>

2錛氫笉鏀瑰彉鎴愬憳鍙橀噺鍊肩殑鍑芥暟錛屼緥濡俥mpty()錛岃澹版槑涓篶onst,榪欑偣寰堥噸瑕侊紝涓嶇劧褰撲竴涓猚onst mystack&綾誨瀷鐨勫璞¤皟鐢╡mpty()鐨勬椂鍊欙紝浼氱紪涓嶈繃銆?/p>

3錛氭嫹璐濇瀯閫犲嚱鏁版渶濂借鍏堝垽鏂槸鍚︽槸鎷瘋礉鑷韓錛屼笉鐒舵湁鏃跺欏氨鍑洪敊銆?/p>

4錛氭嫹璐濇瀯閫犲嚱鏁頒篃鍒繕浜嗘垚鍛樺彉閲忓垵濮嬪寲鍒楄〃銆?nbsp;

template<typename T>
class mystack
{
public:
    mystack();
    mystack(
const mystack& src);
    
~mystack();
    
bool push(const T& data);
    T pop();
    
bool empty() const;
    
void clear();
    mystack
& operator = (const mystack& src);
private:
    
void copystack(mystack& dst, const mystack& src);
    
struct stacknode
    
{
        T data;
        stacknode
* pnext;
    }
;
    stacknode
* phead;
}
;

template
<typename T>
mystack
<T>::mystack():phead(NULL)
{}

template
<typename T>
mystack
<T>::mystack(const mystack<T>& src):
phead(NULL)
{
    copystack(
*this, src);
}


template
<typename T>
mystack
<T>::~mystack()
{
    clear();
}


template
<typename T>
void mystack<T>::clear()
{
    
while(!empty())
    
{
        
pop();
    }

}


template
<typename T>
void mystack<T>::copystack(mystack& dst, const mystack& src)
{
    stacknode
* p = src.phead;
    mystack
<T> tmp;
    
while(p)
    
{
        tmp.push(p
->data);
        p 
= p->pnext;
    }

    
while(!tmp.empty())
    
{
        dst.push(tmp.pop());
    }

}


template
<typename T>
mystack
<T>& mystack<T>::operator=(const mystack& src)
{
    
if (this == &src)
        
return *this;
    clear();
    copystack(
*this, src);
    
return *this;
}


template
<typename T>
bool mystack<T>::empty() const 
{
    
return(phead == NULL);
}


template
<typename T>
bool mystack<T>::push(const T& data)
{
    stacknode
* p = new stacknode;
    
if (!p) return false;
    p
->data = data;
    p
->pnext = phead;
    phead 
= p;
    
return true;
}


template
<typename T>
T mystack
<T>::pop()
{
    assert(
!empty());
    T data;
    data 
= phead->data;
    stacknode
* tmp = phead;
    phead 
= phead->pnext;
    delete tmp;
    
return data;
}


int main(int argc, char* argv[])
{
    mystack
<int> s;    
    
for (int i = 0; i < 1000; i++)
        s.push(rand());
    mystack
<int> s2(s);
    
while(!s2.empty())
    
{
        cout
<<s2.pop()<<endl;
    }

    
return 0;
}


灝忓洓 2007-12-27 13:15 鍙戣〃璇勮
]]>
久久久久久久久无码精品亚洲日韩| 精品多毛少妇人妻AV免费久久| 久久天天躁狠狠躁夜夜躁2O2O | 色婷婷综合久久久久中文字幕| 精品人妻久久久久久888| 久久久久国产精品嫩草影院| 国产精品99久久久久久董美香| 免费精品99久久国产综合精品 | 77777亚洲午夜久久多人| 久久天天躁狠狠躁夜夜2020老熟妇| 999久久久国产精品| 久久香蕉综合色一综合色88| 久久99国产精品久久99果冻传媒| 99精品久久精品| 国色天香久久久久久久小说| 国产精品亚洲综合久久| 精品综合久久久久久98| 无码AV中文字幕久久专区| 国产精品久久久久AV福利动漫| 久久线看观看精品香蕉国产| 99久久精品费精品国产一区二区| 亚洲成人精品久久| 国产精品久久久久久久久久免费| 伊人热热久久原色播放www| 伊人精品久久久久7777| 国产午夜精品久久久久免费视| 97精品伊人久久久大香线蕉 | 一本色道久久88综合日韩精品| 久久久久亚洲AV无码观看| 久久亚洲精品成人AV| 精品久久久久久久久中文字幕| 精品人妻伦一二三区久久 | 国产香蕉久久精品综合网| 无码人妻少妇久久中文字幕蜜桃| 国产精品美女久久久久网| 国产女人aaa级久久久级| 性做久久久久久免费观看| 久久精品中文闷骚内射| 久久人人爽人人爽人人片AV东京热| 97热久久免费频精品99| 久久夜色撩人精品国产小说|