📜  C++ STL-algorithm.find_first_of()函数(1)

📅  最后修改于: 2023-12-03 15:29:49.999000             🧑  作者: Mango

C++ STL-algorithm.find_first_of()函数

find_first_of()函数是C++中STL算法库中的一个函数,用于查找一个特定值集合中的任何元素在另一个范围中第一次出现的位置。它的使用非常简单,可以有效地帮助程序员快速搜索需要的元素。

语法

find_first_of()函数的语法如下:

InputIterator find_first_of (InputIterator first1, InputIterator last1,
                             InputIterator first2, InputIterator last2,
                             BinaryPredicate pred);

其中,first1last1是用于查找的第一个范围的首尾迭代器,first2last2则是含有特定值集合的范围的迭代器。pred是一个可选二元谓词函数,用于比较元素相等性。

返回值

该函数返回指向找到元素的迭代器,如果未找到,则返回范围[last1,last1)

实例

以下是find_first_of()函数的一个用例示例。它搜索一个字符串数组,直到找到首个元素是特定字符集合中的元素,然后返回其下标:

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<char> charSet = {'a', 'e', 'i', 'o', 'u'};
    string str = "hello world";
    
    auto found = find_first_of(str.begin(), str.end(), charSet.begin(), charSet.end());
    
    if(found != str.end())
        cout << "Found '" << *found << "' at location: " << found - str.begin() << endl;
    else
        cout << "No character from set was found" << endl;
        
    return 0;
}

上述代码的输出结果为:

Found 'o' at location: 4
总结

find_first_of()函数是C++中非常有用的算法函数之一。它可以帮助程序员快速搜索需要的元素,以及方便地处理字符串和其他容器中的数据。程序员应该熟练掌握该函数的使用方法,在使用中多加注意参数传递和返回值处理。