2016-12-07 88 views
2

我有一個工作代碼,用於搜索矢量中的特定整數。但是我的問題是我希望輸出顯示多少次整數被找到。 例如,如果矢量的值是{1,2,2,2,3,3,4,4},並且您搜索的是數字2,則輸出會是這樣的東西,'2在矢量中, 3次!'。 這是到目前爲止我的代碼:C++搜索特定值

int searchNumber; 
cout << "Enter a search number: "; 
cin >> searchNumber; 
bool found = find(randomIntegers.begin(), randomIntegers.end(),searchNumber) != randomIntegers.end(); 

if(found) 
    cout << searchNumber << " is in the vector!"; 
else 
    cout << searchNumber << " is NOT in the vector!"; 
+1

請嘗試使用'count'來代替。 – ABcDexter

+0

@KonradRudolph你說得對,我沒有發現有條件的部分。 –

回答

2

嘗試使用count

int ans = count(randomIntegers.begin(), randomIntegers.end(),searchNumber) ; 

the code here in Ideone

+1

我對你的代碼做了一些修改[here](http://ideone.com/BBiBHF)。我不知道你爲什麼使用bits.h。此外,您不必搜索元素,然後對其進行計數。數一數吧。 – Mads

+0

@Mads,[bits/stdC++。h](http://stackoverflow.com/questions/25311011/how-does-include-bits-stdc-h-work-in-c)是許多其他的單個頭文件像矢量,算法等頭文件。並且,爲了保存OP的原始代碼,我使用了搜索部分:) – ABcDexter

+1

@ABcDexter - 該頭文件不是標準的C++。 –

0

您可以使用下面的代碼:

int searchNumber; 
cout << "Enter a search number: "; 
cin >> searchNumber; 
vector<int> randomIntegers = {1,2,2,2,3,3,4,4}; 
long found = count(randomIntegers.begin(), randomIntegers.end(), searchNumber); 
cout << searchNumber << " is in the vector " << found << " times";