C++ find()函数用法详解(超级详细)

8个月前 (04-27)
find() 函数本质上是一个模板函数,用于在指定范围内查找和目标元素值相等的个元素。

如下为 find() 函数的语法格式:

InputIterator find (InputIterator first, InputIterator last, const T& val);

其中,first 和 last 为输入迭代器,[first, last) 用于指定该函数的查找范围;val 为要查找的目标元素。

正因为 first 和 last 的类型为输入迭代器,因此该函数适用于所有的序列式容器。

另外,该函数会返回一个输入迭代器,当 find() 函数查找成功时,其指向的是在 [first, last) 区域内查找到的个目标元素;如果查找失败,则该迭代器的指向和 last 相同。

值得一提的是,find() 函数的底层实现,其实就是用==运算符将 val 和 [first, last) 区域内的元素逐个进行比对。这也就意味着,[first, last) 区域内的元素必须支持==运算符。

举个例子:

#include <iostream> // std::cout

#include <algorithm> // std::find

#include <vector> // std::vector

using namespace std;

int main() {

//find() 函数作用于普通数组

char stl[] ="http://c.biancheng网站站点" rel="nofollow" /> c.biancheng网站站点" rel="nofollow" />

template<class InputIterator, class T>

InputIterator find (InputIterator first, InputIterator last, const T& val)

{

while (first!=last) {

if (*first==val) return first;

++first;

}

return last;

}