re: stringstream的用法 [未登錄](méi) Tom 2015-12-21 13:15
舍棄精華,擁抱糟粕,閑得蛋疼啊!通讀博文和評(píng)論得出的結(jié)論是堅(jiān)定不移地使用大師經(jīng)典sprintf!
re: Qt:繪制帶高光的按鈕[未登錄](méi) Tom 2013-08-07 21:39
哇,這效果真炫!!
re: KMP算法祥解[未登錄](méi) TOM 2013-03-30 01:37
第二種求串的函數(shù)有錯(cuò) 下面的語(yǔ)句
if(k!= -1 && pattern[k]!= pattern[j] )
應(yīng)該改為
while(k!= -1 && pattern[k]!= pattern[j] )
樓主可以試試
abdabaabdabbe這個(gè)數(shù)據(jù) 第一種串函數(shù)的才是正確的
if(k!= -1 && pattern[k]!= pattern[j] )
應(yīng)該改為
while(k!= -1 && pattern[k]!= pattern[j] )
樓主可以試試
abdabaabdabbe這個(gè)數(shù)據(jù) 第一種串函數(shù)的才是正確的
re: polygon offset demo (Fifth and Final version) (Updated)[未登錄](méi) Tom 2013-03-10 01:04
當(dāng)有兩個(gè)holes的時(shí)候,填充還是會(huì)有錯(cuò)誤,呵呵
re: polygon offset demo (Fifth and Final version) (Updated)[未登錄](méi) Tom 2013-03-10 00:51
看了你的Demo,非常好啊,請(qǐng)教下用的是那個(gè)算法啊,謝謝,tom.cat@163.com
re: MFC打印程序的編制[未登錄](méi) Tom 2012-05-24 14:12
干嘛要用綠色的背景啊,眼睛都看花了。哎。
re: C++雜談[未登錄](méi) tom 2011-07-12 12:13
@pangzi
"auto_ptr<int*>,細(xì)節(jié)是魔鬼"
You are the best!
"auto_ptr<int*>,細(xì)節(jié)是魔鬼"
You are the best!
re: 刪除vector容器內(nèi)的重復(fù)元素[未登錄](méi) tom 2011-06-29 16:15
- construct a set S
- for each element in vector
insert it into S
if fails, remove element
- for each element in vector
insert it into S
if fails, remove element
re: 十進(jìn)制整數(shù)千位分隔符[未登錄](méi) tom 2011-06-29 16:06
為什么不調(diào)用C Runtime比如itoa()之類(lèi),然后對(duì)字符串進(jìn)行操作?
re: 《我的第一本C++書(shū)》:一本培養(yǎng)C++語(yǔ)感的書(shū)[未登錄](méi) tom 2011-06-20 17:28
@樓主,
我說(shuō)的就是這個(gè)意思,除非有中國(guó)人在C++ committee 里推動(dòng),這個(gè)事情的優(yōu)先級(jí)不會(huì)太高。所以在c++03的基礎(chǔ)上支持UNICODE還會(huì)是較長(zhǎng)時(shí)間里的現(xiàn)實(shí)。
這也是我前面的建議的前提。
我說(shuō)的就是這個(gè)意思,除非有中國(guó)人在C++ committee 里推動(dòng),這個(gè)事情的優(yōu)先級(jí)不會(huì)太高。所以在c++03的基礎(chǔ)上支持UNICODE還會(huì)是較長(zhǎng)時(shí)間里的現(xiàn)實(shí)。
這也是我前面的建議的前提。
re: 《我的第一本C++書(shū)》:一本培養(yǎng)C++語(yǔ)感的書(shū)[未登錄](méi) tom 2011-06-20 12:42
@空明流轉(zhuǎn), Windows不UCS已經(jīng)很多年了。
See here:
“UTF-16 is used for the native internal representation of text in Microsoft Windows 2000/XP/2003/Vista/CE.[7]”
Cited from http://en.wikipedia.org/wiki/UTF-16/UCS-2.
@陳良喬
新標(biāo)準(zhǔn)C++11已經(jīng)開(kāi)始從標(biāo)準(zhǔn)的層面對(duì)unicode提供的支持,還是紙面上的,無(wú)論GCC還是VC++都還沒(méi)實(shí)現(xiàn),Clang不清楚。在可以預(yù)見(jiàn)的的將來(lái)這不是優(yōu)先工作,畢竟這玩意兒涉及到某種“種族歧視”(不記得哪篇UNICODE的介紹文章里提到過(guò)):說(shuō)英語(yǔ)的人對(duì)UNICODE的需求遠(yuǎn)小于我們。更現(xiàn)實(shí)的情況是:現(xiàn)有的API不可能用C++1x改寫(xiě),我們還得跟這些legacy code交互多年。
再說(shuō)一句,這本是算是一本真正的關(guān)于C++書(shū),希望這種書(shū)越來(lái)越多。
See here:
“UTF-16 is used for the native internal representation of text in Microsoft Windows 2000/XP/2003/Vista/CE.[7]”
Cited from http://en.wikipedia.org/wiki/UTF-16/UCS-2.
@陳良喬
新標(biāo)準(zhǔn)C++11已經(jīng)開(kāi)始從標(biāo)準(zhǔn)的層面對(duì)unicode提供的支持,還是紙面上的,無(wú)論GCC還是VC++都還沒(méi)實(shí)現(xiàn),Clang不清楚。在可以預(yù)見(jiàn)的的將來(lái)這不是優(yōu)先工作,畢竟這玩意兒涉及到某種“種族歧視”(不記得哪篇UNICODE的介紹文章里提到過(guò)):說(shuō)英語(yǔ)的人對(duì)UNICODE的需求遠(yuǎn)小于我們。更現(xiàn)實(shí)的情況是:現(xiàn)有的API不可能用C++1x改寫(xiě),我們還得跟這些legacy code交互多年。
再說(shuō)一句,這本是算是一本真正的關(guān)于C++書(shū),希望這種書(shū)越來(lái)越多。
re: 《我的第一本C++書(shū)》:一本培養(yǎng)C++語(yǔ)感的書(shū)[未登錄](méi) tom 2011-06-19 23:53
買(mǎi)了一本捧場(chǎng),作為國(guó)內(nèi)原創(chuàng),值得鼓勵(lì),很值得鼓勵(lì)。而且內(nèi)容與時(shí)俱進(jìn)。
說(shuō)說(shuō)缺點(diǎn)。類(lèi)似
cout << "中文內(nèi)容";
應(yīng)該寫(xiě)成
wcout << L"中文內(nèi)容";
這對(duì)于我們中文使用者才是正確的做法。包括basic_string<T>在內(nèi),都應(yīng)該鼓勵(lì)采用wchar_t形式。今天的世界,任何字符串信息都應(yīng)該采用UNICODE.
在c++標(biāo)準(zhǔn)支持unicode之前,wchar_t是Windows平臺(tái)上最近似默認(rèn)的UTF-16的做法,不僅提高效率(因?yàn)椴豁氃趦?nèi)部再轉(zhuǎn)換),更重要的,減少字符串相關(guān)算法的潛在錯(cuò)誤。
Unix上UTF-8流行,另說(shuō)。
考慮到此書(shū)提到ppl,側(cè)重Windows平臺(tái)。應(yīng)當(dāng)提倡正確的編碼風(fēng)格,尤其對(duì)非英文軟件編寫(xiě)的程序員。
說(shuō)說(shuō)缺點(diǎn)。類(lèi)似
cout << "中文內(nèi)容";
應(yīng)該寫(xiě)成
wcout << L"中文內(nèi)容";
這對(duì)于我們中文使用者才是正確的做法。包括basic_string<T>在內(nèi),都應(yīng)該鼓勵(lì)采用wchar_t形式。今天的世界,任何字符串信息都應(yīng)該采用UNICODE.
在c++標(biāo)準(zhǔn)支持unicode之前,wchar_t是Windows平臺(tái)上最近似默認(rèn)的UTF-16的做法,不僅提高效率(因?yàn)椴豁氃趦?nèi)部再轉(zhuǎn)換),更重要的,減少字符串相關(guān)算法的潛在錯(cuò)誤。
Unix上UTF-8流行,另說(shuō)。
考慮到此書(shū)提到ppl,側(cè)重Windows平臺(tái)。應(yīng)當(dāng)提倡正確的編碼風(fēng)格,尤其對(duì)非英文軟件編寫(xiě)的程序員。
re: 如何寫(xiě) 執(zhí)行耗時(shí)任務(wù)的、可隨時(shí)立即退出的函數(shù) 呢?[未登錄](méi) tom 2011-05-26 21:36
re: 關(guān)于CppUnit的使用?[未登錄](méi) tom 2011-03-03 14:09
單元的定義是可以因人因系統(tǒng)而異的。一個(gè)全新的應(yīng)用,當(dāng)然可以以函數(shù)或類(lèi)位單元。對(duì)于舊系統(tǒng)以一個(gè)易于定義的,穩(wěn)定的功能單元來(lái)作為基本單位測(cè)試,先把他框住。有必要再深入撕扯重構(gòu),未嘗不可。
在我看來(lái),單元測(cè)試最大的意義在于為以后的更改做準(zhǔn)備,最大限度保證功能是遞增的,不會(huì)在引入新功能的情況下意外犧牲已有的功能。
不過(guò)我一般用Boost.Test。
在我看來(lái),單元測(cè)試最大的意義在于為以后的更改做準(zhǔn)備,最大限度保證功能是遞增的,不會(huì)在引入新功能的情況下意外犧牲已有的功能。
不過(guò)我一般用Boost.Test。
re: CnComm勘誤及Faq(將會(huì)持續(xù)更新)[未登錄](méi) tom 2011-01-18 10:03
采用16進(jìn)制傳輸?shù)臅r(shí)候,解包成ascii A0變成20???B0變成30?
re: 想討論個(gè)話題,關(guān)于DLL的使用方式[未登錄](méi) tom 2010-12-19 10:32
1. XP以后的平臺(tái)(含XP)COM是可以免注冊(cè)的,Win7等微軟自己新寫(xiě)的COM很多就采用這種方式了,基本原理就是自帶干糧,manifest file.
2. 跨編譯器的導(dǎo)出C++ class的方式,一般是DLL采用Singleton模式編寫(xiě),導(dǎo)出C指針。Codeproject上有一篇文章講這個(gè) (http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx)
3.如果有興趣或者是沒(méi)興趣(只想用用)可以看看boost.extension.注意這個(gè)還不是標(biāo)準(zhǔn)的boost庫(kù)成員。也沒(méi)被提交review過(guò)。
2. 跨編譯器的導(dǎo)出C++ class的方式,一般是DLL采用Singleton模式編寫(xiě),導(dǎo)出C指針。Codeproject上有一篇文章講這個(gè) (http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx)
3.如果有興趣或者是沒(méi)興趣(只想用用)可以看看boost.extension.注意這個(gè)還不是標(biāo)準(zhǔn)的boost庫(kù)成員。也沒(méi)被提交review過(guò)。
re: boost庫(kù)使用注意事項(xiàng)(1)-從boost::tokenizer說(shuō)起[未登錄](méi) tom 2010-11-22 21:19
@空明流轉(zhuǎn),
我可沒(méi)冒犯樓主的意思,聞道有先后而已。
我可沒(méi)冒犯樓主的意思,聞道有先后而已。
re: boost庫(kù)使用注意事項(xiàng)(1)-從boost::tokenizer說(shuō)起[未登錄](méi) tom 2010-11-20 14:42
tokenizer<>是按string的traits來(lái)分割的,也就是說(shuō)“隱含的意思“是只能用來(lái)分割用ISO/IEC 8859-1字符集的,中文如"貓 狗 豬"肯定不是。
所以你要么用支持特定編碼的第三方庫(kù)(utf-cpp),這樣來(lái)增加string的編碼支持功能;要么用wstring達(dá)到理論上不完備,但現(xiàn)實(shí)上不大可能出錯(cuò)的效果(限于Windows). C++的basic_string<CharT>是不包含任何編碼功能的,也就談不上對(duì)文本的語(yǔ)義斷開(kāi)了。所以你的看到的結(jié)果其實(shí)是C++意義上正確的,而在中文語(yǔ)義上錯(cuò)誤了。因此是你誤用工具,不是boost庫(kù)或C++語(yǔ)言的錯(cuò)。
關(guān)鍵的知識(shí)點(diǎn)在于,任何文本一定是有編碼的,每次你用到文本,你總是接受了某種隱含的假設(shè),只是你可能沒(méi)意識(shí)到。除非你只寫(xiě)英文版軟件,你可以假裝編碼不存在。
你的例子剛好說(shuō)明,你必須要掌握的編碼的相關(guān)知識(shí)。
所以你要么用支持特定編碼的第三方庫(kù)(utf-cpp),這樣來(lái)增加string的編碼支持功能;要么用wstring達(dá)到理論上不完備,但現(xiàn)實(shí)上不大可能出錯(cuò)的效果(限于Windows). C++的basic_string<CharT>是不包含任何編碼功能的,也就談不上對(duì)文本的語(yǔ)義斷開(kāi)了。所以你的看到的結(jié)果其實(shí)是C++意義上正確的,而在中文語(yǔ)義上錯(cuò)誤了。因此是你誤用工具,不是boost庫(kù)或C++語(yǔ)言的錯(cuò)。
關(guān)鍵的知識(shí)點(diǎn)在于,任何文本一定是有編碼的,每次你用到文本,你總是接受了某種隱含的假設(shè),只是你可能沒(méi)意識(shí)到。除非你只寫(xiě)英文版軟件,你可以假裝編碼不存在。
你的例子剛好說(shuō)明,你必須要掌握的編碼的相關(guān)知識(shí)。
re: boost庫(kù)使用注意事項(xiàng)(1)-從boost::tokenizer說(shuō)起[未登錄](méi) tom 2010-11-19 22:37
你的使用方法是錯(cuò)誤的.應(yīng)該使用wstring, 與 L"貓 狗 豬". 建議學(xué)習(xí)一下有關(guān)UNICODE等編碼相關(guān)知識(shí),以及C++的相關(guān)支持方式。基本上,除非你的母語(yǔ)是English也只給English people寫(xiě)程序,encoding相關(guān)的知識(shí)是繞不開(kāi)的,早晚要掌握。
re: 一道面試題(求一個(gè)unsigned int 數(shù)的二進(jìn)制表示中有多少個(gè)1?)[未登錄](méi) tom 2010-03-31 14:54
試過(guò)std::bitset沒(méi)?可以用int直接構(gòu)造,再循環(huán)調(diào)用std::bitset::test()測(cè)試每一位就齊活。
re: Pku 2513--Colored Sticks(Trie)[未登錄](méi) tom 2009-08-21 15:42
memory 就一數(shù)組啊
re: 最簡(jiǎn)單的foreach實(shí)現(xiàn)(VC & GCC)[未登錄](méi) tom 2009-05-08 12:20
用BOOST_FOREACH更好點(diǎn),使用的是ISO標(biāo)準(zhǔn)C++。VC那是CLI擴(kuò)展,非ISO標(biāo)準(zhǔn).
re: TEA加密算法的C/C++實(shí)現(xiàn)[未登錄](méi) tom 2009-01-12 23:20
學(xué)習(xí)
re: struct 與union的區(qū)別 [未登錄](méi) tom 2008-11-04 15:23
memory alignment@路人甲
re: [轉(zhuǎn)]重入和不可重入函數(shù)概念淺析[未登錄](méi) tom 2008-11-03 17:24
先頂再說(shuō)
re: 紅牛EA外匯智能交易系統(tǒng)完成。[未登錄](méi) tom 2008-10-22 20:08
我想買(mǎi),加我qq,你們?nèi)簼M了64031410
re: 多國(guó)語(yǔ)言惹得禍[未登錄](méi) tom 2007-11-09 21:00
Did you try boost.filesystem? It providesa convenient directory iterator(as easy as like walk() in python) and supports wide characters well
re: 一道面試題目[未登錄](méi) Tom 2007-02-06 14:28
學(xué)習(xí)到了一些,多謝~~~