template <class InputIterator, class T> InputIterator find (InputIterator first, InputIterator last, const T& val);
傳入兩個迭代器 first 和 last,和一個值 val,返回在 [first, last) 範圍內第一個與 val 相等的值的位置的迭代器(使用 == 運算子比較);若沒有找到,則返回 last。例如,查詢 vector<int> v 中第一個值為 x 的位置的迭代器,可以用
vector<int>::iterator i = find(v.begin(), v.end(), x);
詳見:
連結
參考程式碼:
#include <vector>#include <algorithm>using namespace std;int frequency(vector<int> v, int x){ int times = 0; for (vector<int>::iterator i = find(v.begin(), v.end(), x); i != v.end(); i = find(i + 1, v.end(), x)) ++times; return times;}
可以用<algorithm>中的find函式實現。用法:
template <class InputIterator, class T> InputIterator find (InputIterator first, InputIterator last, const T& val);
傳入兩個迭代器 first 和 last,和一個值 val,返回在 [first, last) 範圍內第一個與 val 相等的值的位置的迭代器(使用 == 運算子比較);若沒有找到,則返回 last。例如,查詢 vector<int> v 中第一個值為 x 的位置的迭代器,可以用vector<int>::iterator i = find(v.begin(), v.end(), x);
詳見:連結
參考程式碼:#include <vector>#include <algorithm>using namespace std;int frequency(vector<int> v, int x){ int times = 0; for (vector<int>::iterator i = find(v.begin(), v.end(), x); i != v.end(); i = find(i + 1, v.end(), x)) ++times; return times;}