圖形學什么的我不懂,不過很佩服lz的執著,有能力的人到哪里都會發光。
re: 去掉string里面的所有空格 chenger 2007-11-28 21:54
這個是尾遞歸啊,直接改成循環不更好
萬一有一行巨長的,直接棧溢出了……
當然你要說沒那么長的,也無所謂
re: YC 瀏覽器 chenger 2007-11-18 23:19
雖然也很佩服他的編碼功力……
不過,去掉了運算符重載也就算了,居然連模板和函數重載都去掉了,這還叫C++嗎?還真就是一個C with class。
至于編譯速度比VC++快云云,要知道人家支持的是完整C++,也就是包括函數重載和模板,而這兩塊都相當耗編譯時間。特別是模板系統,絕對是C++編譯器作者最頭疼的東西,這個YC++沒有模板,快一點也可以理解。還有,我懷疑他有作多少代碼優化,VC++肯定包含大量優化,優化需要對代碼做大量分析,很占時間。如果想要編譯速度,那么只能減弱或者減少優化,兩者不可兼得。
當然如果他把自己定位在一個快速原型開發的位置上,也未嘗不可,但這是C++語言又顯得力不從心了些。還不如那些腳本語言來的好用。
我沒用過產品,所以這些都是一些推測。我是很佩服作者的,因為自己也寫過編譯器,知道實現這么一個東西需要很多工作,不過記者有亂吹捧之嫌。
re: 從一道簡單的練習題說開去 chenger 2007-11-14 16:41
如果用非標準的散列表話,應該會更好
對付這種應用,散列表一般是最佳選擇
還好0x里散列表要進標準庫了
re: 高起點C++學習之路 chenger 2007-10-30 10:22
可惜,C++已經風光不再了
C++的語法……感覺實在和優美搭不上邊
re: 隨想--推薦核心開發員應該閱讀的源代碼 chenger 2007-10-27 09:12
看過lua的,稍微讀過stl
re: 學習C++應該看的幾本書 chenger 2007-10-14 20:59
太多了吧,雖然是好書
比如第一層面,我個人認為把TC++PL和primer看過就夠nb了,況且這兩本書絕對不是那么容易看下來的。
effective,exceptional,我覺得不如推薦一本c++ coding standard實用。
對于STL,The C++ Standard Library是有必要推薦的,但更多的應該當字典用。
template的高級技術,什么Meta Programming之類的,其實沒有太多必要了解。
最后是底層,Inside Object Model這樣的書,個人覺得讀一部分就可以了,很多純粹是給compiler作者看的。
以上個人意見
re: 符合量子性質的程序 chenger 2007-08-10 17:46
老實說,科普的例子很容易讓人對量子力學產生誤解
有所謂quantum computing的研究,就是利用量子體系可以處在不同態的疊加這一特性(實際上當然很復雜),可惜離實用太遠……
re: 請 教 chenger 2007-04-22 10:13
用模板不是更好?
template <typename T>
void sort(T v[],int size)
{
for(int i = 0;i < size;++i)
{
for(int j = i;j < size - 1;++j)
{
if(a[j]>a[j+1])
swap(a[j],a[j+1]);//標準庫里好像有這個函數
}
}
}
不知道對不對……這個sort,如果代碼沒錯的話,可以適用于所有能夠用<比較大小的類型,此外要支持賦值,總之要讓swap函數能工作。當然,更好的辦法是提供兩個迭代器begin,end指明排序范圍。建議樓主去看看STL里算法的實現。
re: 未完成東西中的完成部分 chenger 2007-03-29 12:54
看到了expression template……確實是好技術,雖然用得不多。
re: 又是未完成的東西 chenger 2007-03-27 12:15
還是原始的辦法好
搞科學計算的,就不要太講究什么封裝,用類都顯得多余
其實更重要的問題可能是比較底層的,比如緩存命中等等。至于用模板技術,已經有bliz++(是不是叫這個名?)等庫在先,不如去研究研究。其實如果用模板,可讀性更差,除非對template了解很深入,否則幾乎看不懂
re: 純C編寫的矩陣工具包 chenger 2007-01-01 12:36
三天掌握C++?夢囈吧
re: 據說是Google面試題 chenger 2006-12-12 17:50
@heying0
是用Vim格式化成html,然后再貼上來
re: 尋找最長連續遞增子序列 chenger 2006-11-22 12:55
都可以用動態規劃解決,不需要回溯
re: 百度公司來科大的面試題 chenger 2006-11-10 19:04
說實在的,一下就想到了作者所說的鬼魂算法。
是個智力題
re: 刻苦學習各種隨機數的產生 chenger 2006-11-08 21:43
線性同余法不是很好的方法,很多隨機性的測試都通不過。
現在有很多非常好的算法實現,都比較復雜。可以看看W.W.Tsuang的一個lecture,
Random Number Generation and Testing
這個只能算是STL的應用,和Meta-Programming沒什么關系……
re: Google面試題之補充 chenger 2006-09-17 13:25
后來我也覺得那個不正經。
我認為還是正經解決一下比較好。做到這個份上,也差不多了。
re: 據說是Google面試題 chenger 2006-09-16 15:37
@張沈鵬
看了你的算法,寫得比我的好。主要是little函數,我沒有考慮到。
re: 終于把RBTree敲出來了, 累. chenger 2006-09-15 12:48
用數組?感覺一般只有在做算法題時才這么干
Dive into Python是本好書
入門的話A Byte of Python很不錯,我是一口氣看完的。都有中文電子版。
re: 據說是Google面試題 chenger 2006-09-14 23:00
@張沈鵬
能說詳細一點嗎?具體是用什么方法?
re: 一個語言細節問題 chenger 2006-09-12 12:55
問題好像是自增運算符到底在什么時候被求值
re: 使用UNICODE提高效率 chenger 2006-09-11 20:54
梁肇新那本書……
關于他寫的Windows編程的東西,我不是太了解,不好評論。
只是覺得看他的文字很令人不爽。
re: 讀VC++內幕之體悟 - 11 chenger 2006-09-10 20:48
就這么一點?
re: 臨時對象的生存期 chenger 2006-09-10 15:41
都試過了,不管release還是debug,行為是一樣的。
我察看了一下vc中string的實現,它使用了一個union來保存字符串,如果字符串比較小,那么就用棧上的數組來保存。在析構的時候,會重新設置字符串的最后一字節為0。
re: 臨時對象的生存期 chenger 2006-09-10 12:28
@含笑半步癲
最好的辦法還是去看VS的stl源碼,不過感覺VC STL的可讀性極差……
我雖然一直在說vs2005怎么樣怎么樣,不過我的電腦上只裝了VC++ 2005 Express,比起vs來,除了基本的ide和編譯器,別的都很受限制,比如默認不帶Windows SDK,也沒有MFC。
我的代碼都是用Vim寫的。Vim里可以直接把著色的源碼轉換成html,然后再粘過來。唯一的問題是縮進有時候要出點問題,似乎C++博客對pre標簽作了些處理,只好手工調整了。
re: 好像想寫點什么? chenger 2006-09-09 10:44
原來是這個,看到英文沒想起來
re: 據說是Google面試題 chenger 2006-09-09 10:28
@Optimistic
不清楚。面試的話可能是手寫吧。
re: 據說是Google面試題 chenger 2006-09-09 08:35
我覺得你的算法有一點問題。在main函數的while循環里面,iNowOneCount應該是小于i的所有數的各位數字上1的個數吧?你的算法是把i本身也算在內的,跟我的定義不一樣。當然這沒什么,問題是iPreCount = -1。比如i=11的時候,結果應該是4(包括11在內),而這時候iNowCount = 3,顯然不對。我的建議是把iPreCount 干脆設為0,對大于1的數,都能算出正確的結果。1就特殊對待了吧。
erac的算法好像是直接計算每一個數的各位1的個數然后加起來。我原來以為這樣算比較慢,所以找了一個直接計算的公式,實際跑了一下,感覺差不太多。
re: 好像想寫點什么? chenger 2006-09-08 12:46
interval tree是什么東西?我只知道平衡樹是能保持插入搜索都是nlogn的
re: Return of Turbos chenger 2006-09-08 12:28
@沐楓
想想也是的,否則不太可能做到這么快就發布。
希望以后能有更好的作品吧。
re: Return of Turbos chenger 2006-09-07 15:01
我以前裝BDS也是這樣……看來想用Turbo就只能系統重裝了。
re: Return of Turbos chenger 2006-09-06 22:46
prerequisites都可以從microsoft上下載
感覺這個Turbo C++就是把BDS拆了再改了個名字。不過
Turbo C++在我的機子上死活有問題,所以到底怎么樣也不知道。
VCL用C++重寫……應該沒有。
re: 臨時對象的生存期 chenger 2006-09-05 21:08
我不但是學生,而且是業余……
也就是自娛自樂
re: 臨時對象的生存期 chenger 2006-09-05 18:16
我不是說g++錯,在這個問題上g++和VC8的處理方式都沒有問題,都符合標準。文中也說了,只是覺得g++的這個string實現比較容易讓人誤解。既然程序員不應該用,那么編譯器或者庫作者干脆就讓其不可用不是挺好的嗎?至少,出個明顯的錯比運行了半天然后莫名其妙地crack掉好多了
re: 函數返回對象各種方法,怎樣才是最高效? chenger 2006-09-05 17:50
現在的編譯器都實現了返回值優化,一定程度上能減少拷貝次數
re: 想寫個腳本解釋器 chenger 2006-09-05 17:48
事實上,lua的語法設計完全是為了滿足性能上的需要。就個人感覺,lua的語法也還算不錯,當然和C++風格不同。
re: 臨時對象的生存期 chenger 2006-09-05 17:42
弄弄清楚總是好的。而且它原來的例子更迷惑一點:
string get_str()
{
return string("hello");
}
int main()
{
const char *p = get_str().c_str();
cout << p << endl;
return 0;
}
雖然實質上是一樣的。文章里的例子是我自己編的,比較矯揉造作。
re: zlib 壓縮管道 chenger 2006-09-03 16:58
為什么要把決定壓縮程度的參數作為模板參數呢?看不出有這個必要,而且不直觀
re: 一個微秒級的定時函數 chenger 2006-09-02 19:38
是調用WIN32 API的……
收藏一下
re: 讀后感:Doom啟世錄 chenger 2006-09-02 19:29
@Corsair
這邊會跟donews的一塊更新
找了好多,沒有特別滿意的
re: 讀后感:Doom啟世錄 chenger 2006-09-01 09:05
@子彈
的確,像Carmark這樣的人只能說是不世出的天才
而且非常專注,這就很可怕
re: [OPPD] 計算兩個日期之間相距天數 chenger 2006-08-28 15:43
聽說VC6對C++標準的支持很不好,特別是template。居然連min max這樣的簡單模板函數都搞不定?
還是用g++或者vs2005得編譯器好
re: 讀后感:Doom啟世錄 chenger 2006-08-27 20:26
@claire
已經發了
re: [OPPD] 計算兩個日期之間相距天數 chenger 2006-08-25 19:08
min和max兩個宏用標準庫提供的min和max算法代替更好些
re: 買了幾本書 chenger 2006-08-25 08:09
書城是沒有的。現在的計算機書,也實在是忒貴了,effective c++要58塊,應該回南京再買的。
re: 買了幾本書 chenger 2006-08-24 16:55
一樓也有幾間不錯的。