C++ 算法 find() 函数在参数列表中指定一个值,在范围内搜索该值,迭代器从第一个元素开始搜索并继续到最后一个元素,如果在范围内找到该元素,则它否则返回范围的最后一个元素。
用法
template <class InputIterator, class T>
InputIterator find (InputIterator first, InputIterator last, const T& value);
参数
first:它指定范围的第一个元素。
last:它指定范围的最后一个元素。
value:它指定正在范围内搜索的值。
返回值
该函数返回一个迭代器,指向等于该值的范围的第一个元素。如果没有找到这样的元素,则该函数返回最后一个元素。
例子1
#include <iostream>
#include <algorithm>
#include <vector>
int main ()
{
int newints[] = { 50, 60, 70, 80 };
int * q;
q = std::find (newints, newints+4, 60);
if (q != newints+4)
std::cout << "Element found in newints:" << *q << '\n';
else
std::cout << "Element not found in newints\n";
std::vector<int> newvector (newints,newints+4);
std::vector<int>::iterator ti;
ti = find (newvector.begin(), newvector.end(), 60);
if (ti != newvector.end())
std::cout << "Element found in newvector:" << *ti << '\n';
else
std::cout << "Element not found in newvector\n";
return 0;
}
输出:
Elements that are found in newints:60 Elements that are found in newvector:60
例子2
#include<iostream>
#include<algorithm>
#include<vector>
int main()
{
std::vector<int> vct {50,60,70,80};
std::vector<int>::iterator ti;
std::cout<<"Initial vector:";
for(int k=0; k<vct.size(); k++)
std::cout<<" "<<vct[k];
std::cout<<"\n";
int sr = 60;
ti = std::find(vct.begin(), vct.end(),sr);
if(ti!=vct.end())
{
std::cout<< "The element "<<"has been found at position:";
std::cout<<ti-vct.begin() +1<<"\n";
}
else
std::cout<<"Element does not exist.\n \n";
return 0;
}
输出:
Intitial vector:50 60 70 80 The element 30 has been found at position:2
复杂度
该函数以线性方式移动,从第一个元素开始向最后一个元素移动。检查 'pred' 的列表值的每个元素。搜索继续进行,直到遇到 'pred' 值不匹配为止。
数据竞争
函数访问指定范围内的所有对象或其中一些对象。
异常
如果任何参数抛出异常,该函数将抛出异常。
相关用法
- C++ find_if()用法及代码示例
- C++ find_first_of()用法及代码示例
- C++ find_end()用法及代码示例
- C++ find_if_not()用法及代码示例
- C++ find_by_order()用法及代码示例
- C++ fill_n()用法及代码示例
- C++ fill()用法及代码示例
- C++ fill用法及代码示例
- C++ fmax()用法及代码示例
- C++ fdim()用法及代码示例
- C++ fmin()用法及代码示例
- C++ forward_list::unique()用法及代码示例
- C++ forward_list::emplace_front()用法及代码示例
- C++ forward_list::reverse()用法及代码示例
- C++ forward_list::swap()用法及代码示例
- C++ forward_list::front()、forward_list::empty()用法及代码示例
- C++ functional::bad_function_call用法及代码示例
- C++ forward_list::operator=用法及代码示例
- C++ forward_list::clear()、forward_list::erase_after()用法及代码示例
- C++ forward_list emplace_after()、emplace_front()用法及代码示例
注:本文由纯净天空筛选整理自 C++ Algorithm Function find()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。