W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
雖然上面的函數(shù)可以完成指定工作,但是它的效率比較低。每一次調(diào)用howMany函數(shù)時(shí)它都要將整個(gè)數(shù)據(jù)內(nèi)容遍歷一次。在下面的程序中,我們需要將數(shù)據(jù)遍歷十次。
我們要設(shè)計(jì)一個(gè)函數(shù),使其將數(shù)據(jù)遍歷一邊就能完成工作。對(duì)數(shù)據(jù)中的每一個(gè)值,我們可以將其對(duì)應(yīng)的計(jì)數(shù)存儲(chǔ)點(diǎn)找出,并將其自增一。換句話說,我們使用向量中的值作為直方圖的下標(biāo)。下面是對(duì)應(yīng)方法設(shè)計(jì)的程序:
apvector<int> histogram (upperBound, 0);
for (int i = 0; i<numValues; i++) {
int index = vector[i];
histogram[index]++;
}
第一行對(duì)統(tǒng)計(jì)值進(jìn)行初始化直方圖的值為0。通過這樣,我們就可以在循環(huán)體里通過++操作符進(jìn)行對(duì)直方圖增長(zhǎng)。我們知道我們讓它會(huì)從0開始。而忘記初始化計(jì)數(shù)器是一個(gè)常見的錯(cuò)誤。
作為一練習(xí),可以將以上的代碼封裝設(shè)計(jì)好,組合成一histogram函數(shù),輸入一個(gè)向量并統(tǒng)計(jì)值范圍(這里是0到10),返回值就是向量中的統(tǒng)計(jì)直方圖。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: