素?cái)?shù)查找















































posted on 2010-09-25 18:49 sduzgz 閱讀(502) 評(píng)論(4) 編輯 收藏 引用
posted on 2010-09-25 18:49 sduzgz 閱讀(502) 評(píng)論(4) 編輯 收藏 引用
不要使用using namespace std; 因?yàn)閟td命名空間里的東西全是一些常見(jiàn)的名字, 像string, vector, list等等,直接使用std::string,以防止重名
#define N 100可以使用const常量代替(并且,盡量放到一個(gè)空的namespace下),否則你需要定義成#define N (100),加括號(hào),這是常識(shí)
prim[i]=true;的那個(gè)循環(huán)可以改成memset(&prim, 1, sizeof prim)
for(i=2;i<=sqrt(N);i++)---請(qǐng)把sqrt(N)拿到循環(huán)外面來(lái)
看你寫(xiě)代碼的樣子,應(yīng)該是vc6吧,把int i,j;放后面點(diǎn)吧,不過(guò)在在未使用的地方就定義變量,比如int j完全可以放到循環(huán)內(nèi)部定義
回復(fù) 更多評(píng)論
牛人啊,我這習(xí)慣確實(shí)很多問(wèn)題啊,命名空間那個(gè)我可以明白,你說(shuō)的prim[i]那個(gè)循環(huán)還有最后sqrt(N)拿到外面,改成那樣有什么好處啊,雖然覺(jué)得好,但是不知道為什么。@李現(xiàn)民
回復(fù) 更多評(píng)論
memset是一種高效的數(shù)組初始化方式,它本身是用匯編寫(xiě)的,vc下應(yīng)該是位于memset.asm中,當(dāng)你使用部分初始化時(shí), 比如int a[100]={0}, 你會(huì)看到它的匯編代碼其實(shí)用的就是memset。
把sqrt(N)拿到外面那個(gè), 你不覺(jué)得你的代碼中每次循環(huán)sqrt(N)都會(huì)調(diào)用一遍嘛?當(dāng)然, 現(xiàn)代編譯器的話,這種簡(jiǎn)單的調(diào)用可以被優(yōu)化掉,但作為碼農(nóng), 你不應(yīng)該寫(xiě)成這樣 回復(fù) 更多評(píng)論
@李現(xiàn)民
奧,茅塞頓開(kāi)啊,謝謝啊!
回復(fù) 更多評(píng)論
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
|
||
|