首页 > 编程笔记

C++ find()函数用法详解

C++ 提供了一系列的标准模板库(STL)函数,用于对容器执行各种操作,其中就包括本节要讲的 find() 函数。

find() 函数是一个非常实用的工具,定义在<algorithm>头文件中,用于在支持迭代器的容器内查找目标元素,例如 std::vector、std::list、std::array、std::string 等。

使用 find() 函数很简单,只需要指定要搜索的范围和要查找的值即可,语法格式如下:
iterator find (iterator first, iterator last, const T& value);

如果找到元素,find() 函数返回指向该元素的迭代器,否则返回指向范围结尾的迭代器。

需要注意的是,使用 find() 函数时,搜索范围内的数据必须能使用==等号运算符做比较。此外,find() 函数使用的是线性查找,所以时间复杂度是O(n)

【实例】下面的 C++ 程序演示了 find() 函数的功能和用法。
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> data = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int target = 5;

    auto it = std::find(data.begin(), data.end(), target);

    if (it != data.end()) {
        std::cout << "Found " << target << " at position " << std::distance(data.begin(), it) << std::endl;
    } else {
        std::cout << target << " not found in the data." << std::endl;
    }

    return 0;
}
执行结果为:

Found 5 at position 4

推荐阅读