#include <iostream> // std::cout
#include <algorithm> // std::find
#include <vector> // std::vector
bool IsOdd (int i) {
return ((i%2)==1);
}
int main()
{
int p[] = {0, 1, 2, 3, 4, 5};
std::vector<int> myvector( p, p + 6 );
std::vector<int>::iterator it;
/** @brief find() example */
// iterator to vector element:
it = find( myvector.begin(), myvector.end(), 3 );
if( it != myvector.end() ) // finded
{
std::cout << "The element 3 is found." << '\n';
// now *it is 3. it is a iterator to int.
++it;
std::cout << "The element following 3 is " << *it << '\n';
}
/** @brief find_if() example */
// iterator to vector element matching some condition.
it = std::find_if (myvector.begin(), myvector.end(), IsOdd);
if( it != myvector.end() ) // finded
{
std::cout << "The first odd value is " << *it << '\n';
}
return 0;
}
find(first, last, val) 查找值为val的元素,返回迭代器
http://www.cplusplus.com/reference/algorithm/find/
find_if(first,last, pred) 查找符合某个条件的元素,返回迭代器
http://www.cplusplus.com/reference/algorithm/find_if/