首页 > 编程知识 正文

hundred用法详解,八字十二长生用法详解

时间:2023-05-05 06:03:22 阅读:245662 作者:4366

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::vectorusing namespace std;int main() { //find() 函数作用于普通数组 char stl[] ="http://c.biancheng.net/stl/"; //调用 find() 查找第一个字符 'c' char * p = find(stl, stl + strlen(stl), 'c'); //判断是否查找成功 if (p != stl + strlen(stl)) { cout << p << endl; } //find() 函数作用于容器 std::vector<int> myvector{ 10,20,30,40,50 }; std::vector<int>::iterator it; it = find(myvector.begin(), myvector.end(), 30); if (it != myvector.end()) cout << "查找成功:" << *it; else cout << "查找失败"; return 0;}

运行结果:

可以看到,find()函数除了可以作用于序列式容器,还可以作用于普通数组。

对于find()函数的底层实现,C++ 标准库中给出了参数代码,感兴趣的读者可自行研究:

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;}

以上内容转载自:

C++ C语言中文网_find()函数用法详解(超级详细)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。