標籤:
find函數主要實現的是在容器內尋找指定的元素,並且這個元素必須是基礎資料型別 (Elementary Data Type)的。
尋找成功返回一個指向指定元素的迭代器,尋找失敗返回end迭代器。
標頭檔
#include <algorithm>
函數實現
template<class InputIterator, class T>InputIterator find (InputIterator first, InputIterator last, const T& val){ while (first!=last) { if (*first==val) return first; ++first; } return last;}
例1(vector)
#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){ vector<string> m; m.push_back("hello"); m.push_back("hello2"); m.push_back("hello3"); if (find(m.begin(), m.end(), "hello") == m.end()) cout << "no" << endl; else cout << "yes" << endl;}
例2(set)
#include <iostream>#include <algorithm>#include <string>#include <set>using namespace std;int main(){ set<string> m; m.insert("hello"); m.insert("hello2"); m.insert("hello3"); if (find(m.begin(), m.end(), "hello") == m.end()) cout << "no" << endl; else cout << "yes" << endl;}
注1:set自身有個find函數,舉例如下:
#include <iostream>#include <algorithm>#include <string>#include <set>using namespace std;int main(){ set<string> m; m.insert("hello"); m.insert("hello2"); m.insert("hello3"); if (find(m.begin(), m.end(), "hello") == m.end()) cout << "no" << endl; else cout << "yes" << endl;}
注2:string自身有個find函數,舉例如下:
#include <iostream>#include <algorithm>#include <string>using namespace std;int main(){ string s = "helllo"; if (s.find("e") == string::npos) //yes cout << "no" << endl; else cout << "yes" << endl; if (s.find("z") == string::npos) //no cout << "no" << endl; else cout << "yes" << endl;}
c++中find函數的用法