📜  C++ STL-algorithm.find()函数

📅  最后修改于: 2020-10-16 08:39:31             🧑  作者: Mango

C++ STL algorithm函数find()

C++ STL algorithm.find()函数在参数列表中指定一个值,在范围内搜索该值,如果该元素在范围内找到,则迭代器从第一个元素开始搜索并继续到最后一个元素然后返回它,否则给出范围的最后一个元素。

句法

template 
InputIterator find (InputIterator first, InputIterator last, const T& value);

参数

first:指定范围的第一个元素。

last:指定范围的最后一个元素。

value:指定要在范围内搜索的值。

返回值

该函数将迭代器返回到等于该值的范围的第一个元素。如果找不到这样的元素,则该函数返回最后一个元素。

例子1

#include      
#include     
#include        
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 newvector (newints,newints+4);
  std::vector::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
#include
#include
int main()
{
    std:: vector vct {50,60,70,80}; 
    std::vector::iterator ti;
    std::cout<<"Initial vector:";
    for(int k=0; k

输出:

Intitial vector: 50 60 70 80
The element 30 has been found  at position: 2

复杂度

该函数以线性方式移动,从第一个元素到最后一个元素。对于列表中的每个元素,都会检查“ pred”的值。搜索继续进行,直到遇到“ pred”值不匹配的情况。

数据竞争

函数可以访问指定范围内的所有对象,也可以访问其中的一些对象。

异常处理

如果任何参数抛出一个异常,该函数将引发异常。