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