當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ find()用法及代碼示例


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++ Algorithm Function find()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。