2014-01-13 43 views
-5

我有一個整數向量。其中包含數字。我想要統計這個向量中每個數字的出現次數。那麼最佳的方式是什麼呢?由於我是Vector的新手,請告訴我任何最佳方法。在C++中查找一個向量中的數字出現次數

+2

你試過了什麼? – aalku

+0

告訴我們你寫的代碼... – Sean

+0

一提示:std :: map – Till

回答

3

你可以使用一個哈希表,由std :: unordered_map實現。例如:

#include <unordered_map> 
#include <vector> 

void count_occurrence(std::unordered_map<int,int>& m, std::vector<int>& v){ 
    for (auto itr = v.begin(); itr != v.end(); ++itr){ 
     ++m[*itr]; 
    } 
} 

//...somewhere else 
//you already have std::vector v filled 
std::unordered_map<int,int> m; 
count_occurrence(m, v); 

//print the number of occurrences of 1 
std::cout<<m[1]<<std::endl; 
0

您可以通過矢量

存儲當前的整數爲x

比較當前指數上一索引向量

迭代的元素進行排序。

如果它們相等,則增加另一變量爲f

如果它們不相等,再次開始該循環

這當然決不是一步步指令,但它包含足夠的方向讓你去

相關問題