2009年12月17日
摘要:
做這個小demo(下載)主要是為了解決如何在ListView上排序大量數(shù)據(jù)的問題。
這個Demo窗口上的ListView有一百萬個項目,點(diǎn)了“Sort”之后就會開始排序。但這個排序跟以往的不同,你看到哪里它排到哪里,但這個排序不僅僅是在窗口內(nèi)部排,而是你看到的內(nèi)容都是正確的。
舉個例子,你在瀏覽1000-1020條的時候,我會開始排序(當(dāng)然有一點(diǎn)點(diǎn)延遲,不過不會卡窗口),然后確保1000-1020一定是【全局中的】第1000小到第1020小的,就如同全部排過序一樣。而且還有一個副作用,就是小于1000的全部比1000小,大于1020的全部比1020大(這可以讓你繼續(xù)瀏覽的時候排序迅速收斂,而且這聽起來應(yīng)該很熟悉,嘿嘿)。
歡迎下載并試用。
------------------------------------------------------------------------------------------
下面是代碼(如果不想下載可以直接看,不過強(qiáng)烈建議親身體驗)
---------------------
閱讀全文
posted @ 2009-12-17 10:42
陳梓瀚(vczh)
閱讀(3119)
推薦(2)
2008年11月9日
摘要:
作者(不是我)信息: 華南理工大學(xué)軟件學(xué)院本科07級(現(xiàn)大二) 進(jìn)入大學(xué)前玩過幾個星期pascal,高考后的暑假重新學(xué)編程 程序信息:(下載請移步這里) 學(xué)習(xí)C++一年后的作品。 內(nèi)含所有代碼,以及VC++工程文件。 一個程序,輸入只有匹配沒有捕獲的正則表達(dá)式,輸入被匹配的字符串,輸出字符串中符合正則表達(dá)式要求的部分。 支持括號改變優(yōu)先級,[字符集]和[^字符集],少量轉(zhuǎn)義(\d等),循環(huán)(+*...
閱讀全文
posted @ 2008-11-09 21:36
陳梓瀚(vczh)
閱讀(3618)
推薦(0)
2008年9月6日
摘要:
我們知道Yacc和Bison都是產(chǎn)生C++的代碼作為編譯器的前端的。但是有時候我們需要動態(tài)地產(chǎn)生一個編譯器前端,極端一點(diǎn)講,譬如“文法調(diào)試器”。調(diào)試器總不能動態(tài)生成.y文件,讓yacc編譯,讓gcc再度編譯,然后execute,最后將程序的輸出結(jié)果讀進(jìn)來。這樣就太麻煩了,于是我們需要重新寫一個生成編譯器前端的程序。
閱讀全文
posted @ 2008-09-06 18:56
陳梓瀚(vczh)
閱讀(2227)
推薦(0)
2008年8月27日
摘要:
大概一年前曾經(jīng)用C++開發(fā)了一個可以在C++中直接寫上下文無關(guān)文法的上下文無關(guān)文法分析器。這玩意兒叫Syngram。Syngram曾經(jīng)做了兩次,第一次做成了用一個類去讀文法文件,后來不爽就改成了直接在C++里面寫的。我弄了一個叫Term的類,重載了一些操作符,于是你可以搞分支、可選、錯誤處理等復(fù)雜的文法推導(dǎo)式。現(xiàn)在打算做一個周邊工具。
閱讀全文
posted @ 2008-08-27 21:07
陳梓瀚(vczh)
閱讀(5300)
推薦(0)
2008年8月15日
摘要:
原本在C++博客申請了個東西,后來發(fā)現(xiàn)雖然我寫的代碼基本都是C++,不過貼上博客的東西卻跟C++沒什么關(guān)系,所以以后打算在這里也寫些啥。不過因為這里沒啥東西,原來的博客也才50多篇文章。還是要慢慢積累起來的……
閱讀全文
posted @ 2008-08-15 22:39
陳梓瀚(vczh)
閱讀(3423)
推薦(0)