锘??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 GMT http://www.shnenglu.com/cugdj/archive/2010/02/05/107266.html http://www.shnenglu.com/cugdj/comments/107266.html http://www.shnenglu.com/cugdj/archive/2010/02/05/107266.html#Feedback 0 http://www.shnenglu.com/cugdj/comments/commentRss/107266.html http://www.shnenglu.com/cugdj/services/trackbacks/107266.html 鍘熺悊灝辨槸榪欐牱銆傝嚜宸卞仛浜嗕竴涓猰p3杞琽gg鐨勫伐紼嬶紝杞崲榪囩▼涓璵p3鐨則ag淇℃伅閮芥病鏈変涪澶便?br>閫熷害榪樺彲浠ワ紝闇瑕佺殑浜哄彲浠ヨ嚜宸遍槄璇諱竴涓嬩唬鐮佽繘琛屼紭鍖栥?br>婧愪唬鐮佸湪榪欓噷 涓嬭澆銆?
]]> DLL紿椾綋涓璓reTranslateMessage鐨勮В鍐蟲柟妗?/title> http://www.shnenglu.com/cugdj/archive/2009/01/06/71299.html灝忓洓 灝忓洓 Tue, 06 Jan 2009 02:24:00 GMT http://www.shnenglu.com/cugdj/archive/2009/01/06/71299.html http://www.shnenglu.com/cugdj/comments/71299.html http://www.shnenglu.com/cugdj/archive/2009/01/06/71299.html#Feedback 1 http://www.shnenglu.com/cugdj/comments/commentRss/71299.html http://www.shnenglu.com/cugdj/services/trackbacks/71299.html 鐢變簬鍦―LL紿椾綋涓渶瑕佷嬌鐢–ToolTipCtrl鏉ュ疄鐜版彁紺哄姛鑳斤紝 鎵浠ヨ閲嶈澆PreTranslateMessage,浠g爜濡備笅
BOOL CMyWnd::PreTranslateMessage(MSG* pMsg) { m_toolTip.RelayEvent(pMsg); return CGameWnd::PreTranslateMessage(pMsg); }
浣嗘槸鐢變簬CMyWnd鏄湪DLL涓紝鎵浠ラ噸杞絇reTranslateMessage鏃犳晥錛?br>鍏蜂綋鍘熷洜鎴戝繕璁頒簡錛屽弽姝g綉涓婇兘鍙互鎼滅儲鍒般備笉榪囪В鍐蟲柟妗堥兘緇欑殑 涓嶆槸寰堟槑紜紝鍦ㄨ繖閲屾垜鎶婃垜鐨勮В鍐蟲柟娉曡褰曚笅鏉ワ紝鐪佸緱浠ュ悗蹇樻帀浜嗐?br>涓昏鏄湪鍒涘緩CMyWnd瀹炰緥鐨勬椂鍊欐妸紿楀彛鎸囬拡瀛樹笅鏉ワ紝鐒跺悗浣跨敤鍏ㄥ眬 娑堟伅閽╁瓙鎵цCMyWnd::PreTranslateMessage錛屼唬鐮佸涓?/p>
1.瀹氫箟鍏ㄥ眬鍙橀噺 HHOOK g_hHook = 0; CMyWnd* g_pMyWnd = NULL;
2.瀹夎鍏ㄥ眬閽╁瓙錛岃鍦―LL涓畨瑁?br> g_hHook = ::SetWindowsHookEx(WH_GETMESSAGE, HookProc, 0, ::GetCurrentThreadId());
3.鍒涘緩紿椾綋鐨勬椂鍊欎繚鐣欐寚閽?br> m_pMyWnd = new CMyWnd(); g_pMyWnd = m_pMyWnd;
4.閽╁瓙鍑芥暟 LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) { MSG* pMsg = (MSG*)lParam; if(g_pMyWnd && (pMsg->hwnd == g_pMyWnd->m_hWnd)) { g_pMyWnd->PreTranslateMessage(pMsg); } return CallNextHookEx(g_hHook, nCode, wParam, lParam); }
5.閫鍑虹殑鏃跺欏埆蹇樹簡鍗歌澆閽╁瓙 if(g_hHook) UnhookWindowsHookEx(g_hHook);
]]>鏁版嵁緇撴瀯闅忕瑪6(琛ㄨ揪寮忔眰鍊? http://www.shnenglu.com/cugdj/archive/2008/01/04/40415.html灝忓洓 灝忓洓 Fri, 04 Jan 2008 11:59:00 GMT http://www.shnenglu.com/cugdj/archive/2008/01/04/40415.html http://www.shnenglu.com/cugdj/comments/40415.html http://www.shnenglu.com/cugdj/archive/2008/01/04/40415.html#Feedback 0 http://www.shnenglu.com/cugdj/comments/commentRss/40415.html http://www.shnenglu.com/cugdj/services/trackbacks/40415.html 闃呰鍏ㄦ枃 ]]> 鏁版嵁緇撴瀯闅忕瑪5(浜屽弶鎺掑簭鏍? http://www.shnenglu.com/cugdj/archive/2008/01/01/40197.html灝忓洓 灝忓洓 Tue, 01 Jan 2008 13:49:00 GMT http://www.shnenglu.com/cugdj/archive/2008/01/01/40197.html http://www.shnenglu.com/cugdj/comments/40197.html http://www.shnenglu.com/cugdj/archive/2008/01/01/40197.html#Feedback 0 http://www.shnenglu.com/cugdj/comments/commentRss/40197.html http://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); * p = 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 ; }
]]> 鏁版嵁緇撴瀯闅忕瑪4(鎶樺崐鏌ユ壘) http://www.shnenglu.com/cugdj/archive/2008/01/01/40175.html灝忓洓 灝忓洓 Tue, 01 Jan 2008 09:59:00 GMT http://www.shnenglu.com/cugdj/archive/2008/01/01/40175.html http://www.shnenglu.com/cugdj/comments/40175.html http://www.shnenglu.com/cugdj/archive/2008/01/01/40175.html#Feedback 0 http://www.shnenglu.com/cugdj/comments/commentRss/40175.html http://www.shnenglu.com/cugdj/services/trackbacks/40175.html bsearch(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[] = { 2 , 4 , 6 , 7 , 8 , 9 , 13 } ; int aa = sizeof (a); int n = binarysearch(a, sizeof (a) / sizeof (a[ 0 ]), 4 ); cout << n << endl; return 0 ; }
]]> 鏁版嵁緇撴瀯闅忕瑪3(鍝堝笇琛? http://www.shnenglu.com/cugdj/archive/2007/12/30/40006.html灝忓洓 灝忓洓 Sun, 30 Dec 2007 07:13:00 GMT http://www.shnenglu.com/cugdj/archive/2007/12/30/40006.html http://www.shnenglu.com/cugdj/comments/40006.html http://www.shnenglu.com/cugdj/archive/2007/12/30/40006.html#Feedback 0 http://www.shnenglu.com/cugdj/comments/commentRss/40006.html http://www.shnenglu.com/cugdj/services/trackbacks/40006.html 闃呰鍏ㄦ枃 ]]> 鏁版嵁緇撴瀯闅忕瑪2(蹇熸帓搴? http://www.shnenglu.com/cugdj/archive/2007/12/29/39925.html灝忓洓 灝忓洓 Sat, 29 Dec 2007 06:31:00 GMT http://www.shnenglu.com/cugdj/archive/2007/12/29/39925.html http://www.shnenglu.com/cugdj/comments/39925.html http://www.shnenglu.com/cugdj/archive/2007/12/29/39925.html#Feedback 0 http://www.shnenglu.com/cugdj/comments/commentRss/39925.html http://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 ; }
]]> 鏁版嵁緇撴瀯闅忕瑪1(鍫嗘爤) http://www.shnenglu.com/cugdj/archive/2007/12/27/39722.html灝忓洓 灝忓洓 Thu, 27 Dec 2007 05:15:00 GMT http://www.shnenglu.com/cugdj/archive/2007/12/27/39722.html http://www.shnenglu.com/cugdj/comments/39722.html http://www.shnenglu.com/cugdj/archive/2007/12/27/39722.html#Feedback 1 http://www.shnenglu.com/cugdj/comments/commentRss/39722.html http://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 ; }
]]>
久久久久久久久无码精品亚洲日韩 |
精品多毛少妇人妻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 |
久久夜色撩人精品国产小说 |