本文內容來自C++Plus,本文只是本人的總結和翻譯而已。本人只是C++的搬運工。
原文傳送門:http://www.cplusplus.com/reference/algorithm/count/
count算法:計算指定值在範圍內的個數。
template <class InputIterator, class T>
typename iterator_traits<InputIterator>::difference_type
count (InputIterator first, InputIterator last, const T& val)
{
typename iterator_traits<InputIterator>::difference_type ret = 0;
while (first!=last) {
if (*first == val) ++ret;
++first;
}
return ret;
}
使用這個算法的話必須要確保先重載過operator==
否者無法使用。這個算法繼承了一個萃取器,返回值是一個signed integral type。
// count algorithm example
#include <iostream> // std::cout
#include <algorithm> // std::count
#include <vector> // std::vector
int main () {
// counting elements in array:
int myints[] = {10,20,30,30,20,10,10,20}; // 8 elements
int mycount = std::count (myints, myints+8, 10);
std::cout << "10 appears " << mycount << " times.\n";
// counting elements in container:
std::vector<int> myvector (myints, myints+8);
mycount = std::count (myvector.begin(), myvector.end(), 20);
std::cout << "20 appears " << mycount << " times.\n";
return 0;
}
注意事項:用該算法之前要先確保你使用的容器是已經
operator==
過的容器,如果是自己的封閉空間,就要自己operator==。