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