find と find_if の使用方法です.
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
// 奇数の判定
class is_odd : public unary_function<int, bool>
{
public:
result_type operator() (argument_type k)
{
return (result_type)(k % 2);
}
};
int main()
{
vector<int> v;
vector<int>::iterator it;
// 初期設定
printf("**初期状態**\n");
v.push_back(4);
v.push_back(2);
v.push_back(2);
v.push_back(3);
v.push_back(4);
for (it = v.begin(); it != v.end(); it++)
printf(" %d", *it);
printf("\n");
// 検索
it = find(v.begin(), v.end(), 2);
if (it != v.end())
printf("%d が見つかりました\n", *it);
else
printf("2 が見つかりませんでした\n");
it = find_if(v.begin(), v.end(), is_odd());
if (it != v.end())
printf("奇数 %d が見つかりました\n", *it);
else
printf("奇数が見つかりませんでした\n");
return 0;
}
(出力)
**初期状態**
4 2 2 3 4
2 が見つかりました
奇数 3 が見つかりました