📜  通用find()函数如何在C++ STL中工作?(1)

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

通用find()函数如何在C++ STL中工作?

在C++ STL中,有一个通用的find()函数,可以在序列容器中查找特定元素,并返回该元素在容器中的位置迭代器。使用该函数需要包含头文件

函数原型
template<typename ForwardIterator, typename T>
ForwardIterator find(ForwardIterator first, ForwardIterator last, const T& value);

参数说明:

  • first:容器中要查找的区间的起始位置
  • last:容器中要查找的区间的结束位置
  • value:要查找的元素值

返回值:如果查找成功,返回指向该元素位置的迭代器;如果查找失败,返回 last 迭代器。

示例

下面的示例演示如何使用 find() 函数在 vector 容器中查找指定元素,并输出它的位置。

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

using namespace std;

int main() {

    vector<int> v = { 2, 4, 6, 8, 10 };
    int x = 6;

    vector<int>::iterator it = find(v.begin(), v.end(), x);

    if (it != v.end()) {
        cout << "元素 " << x << " 找到了,位置是:" << (it - v.begin()) << endl;
    }
    else {
        cout << "元素 " << x << " 没有找到" << endl;
    }

    return 0;
}

程序输出:

元素 6 找到了,位置是:2
注意事项
  • find() 函数可以用于所有的序列容器,如 vector、list、deque、array 等
  • find() 函数是一个通用的查找算法,可以查找任何可以比较的元素(已重载 operator ==
  • 如果容器中包含多个符合条件的元素,该函数只会返回任意一个元素的位置