C++STL的非变易算法(Non-mutating algorithms)是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。
首先需要引入头文件<algorithm>,其中find_first_of()查找集合中的任意一个元素。
find_first_of,带有两对迭代器参数。每对迭代器中,两个参数的类型必须精确匹配,但不要求两对之间的类型匹配。特别是,元素可存储在不同类型的序列中,只要这两个序列的元素可以比较即可。
第一个容器中元素按先后顺序,在第二个容器当中找到相同的元素,找到返回First1
如果没有找到这样的元素,函数将返回last1。
代码块如下:
#include <iostream>
#include <algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int> a{1,3,4};
vector<int>::iterator av;
vector<int> b{4,2,1,3};
///*第一种:将a数组里面的值和b数组中的值逐一比较,相同就输出*/
av = find_first_of(a.begin(), a.end(), b.begin(), b.end());
///*判断是否找到相同的值*/
if (av != a.end())
{
cout << "字符串a中第一个出现在b的字符为:" << *av << ends;
}
/*第二种:拿a数组里面的值和b数组中的值逐一比较大小,当a中的值大于b中的值的时候输出*/
cout << *find_first_of(a.begin(), a.end(), b.begin(), b.end(), [](int a, int b) { return a > b; }) << endl;
}
输出显示: