Bootstrap

STL算法之find_first_of()

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;

}

 

 

输出显示:

 

;