search用于在序列A中查找满足条件的序列B,返回序列B在序列A中第一次出现的位置。
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
bool searchComp(int i, int j) { return i == j; }
bool searchComp2(int i, int j) { return i > j; }
int main()
{
vector<int> v{ 1,2,2,2,4,5,2,3,4,7,8,9,1,7,2,3,4 };
vector<int> d{ 2,3,4};
auto it = search(v.begin(), v.end(), d.begin(), d.end());
if (it != v.end())
cout << "v[" << it - v.begin() << "]=" << *it << endl;
it = search(v.begin(), v.end(), d.begin(), d.end(), searchComp);
if (it != v.end())
cout << "v[" << it - v.begin() << "]=" << *it << endl;
it = search(v.begin(), v.end(), d.begin(), d.end(), searchComp2);
if (it != v.end())
cout << "v[" << it - v.begin() << "]=" << *it << endl;
return 0;
}
输出结果:
v[6]=2
v[6]=2
v[7]=3