STL algorithm算法find(16)
来源:互联网 发布:中国云计算行业分析 编辑:程序博客网 时间:2024/06/07 02:10
原文地址:http://www.cplusplus.com/reference/algorithm/find/
function template
<algorithm>
std::find
template <class InputIterator, class T> InputIterator find (InputIterator first, InputIterator last, const T& val);
Find value in range
Returns an iterator to the first element in the range [first,last)
that compares equal to val. If no such element is found, the function returns last.返回范围内与val相等的第一个元素的迭代器,如果没有这样的元素,那么将返回last.
例子:
#include <iostream>#include <algorithm>#include <vector>#include <array>using namespace std;void find2(){ vector<int> vi{1,5,7,8,9,9,8,5,9}; cout<<"vi="; for(int &i:vi) cout<<i<<" "; cout<<endl; auto it=find(vi.begin(),vi.end(),8); cout<<"auto it=find(vi.begin(),vi.end(),8);"<<endl; cout<<"(it-1)="<<*(it-1)<<endl; cout<<"it="<<*it<<endl; cout<<"(it+1)="<<*(it+1)<<endl; auto it2=find(vi.begin(),vi.end(),18); cout<<"auto it2=find(vi.begin(),vi.end(),18);"<<endl; cout<<"(it2-1)="<<*(it2-1)<<endl; cout<<"it2="<<*it2<<endl; cout<<"(it2+1)="<<*(it2+1)<<endl; if(it2==vi.end()) cout<<"it2==vi.end()"<<endl;}运行截图:
The function uses operator==
to compare the individual elements to val.
使用operator==来比较元素与val是否相等。
The behavior of this function template is equivalent to:
123456789
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;}
Parameters
- first, last
- Input iterators to the initial and final positions in a sequence. The range searched is
[first,last)
, which contains all the elements between first and last, including the element pointed by first but not the element pointed bylast.
比较的范围。 - val
- Value to search for in the range.
T shall be a type supporting comparisons with the elements pointed by InputIterator usingoperator==
(with the elements as left-hand side operands, and val as right-hand side).
Return value
An iterator to the first element in the range that compares equal to val.If no elements match, the function returns last.
返回范围内与val相等的第一个元素的迭代器,如果没有这样的元素,那么将返回last.
Example
12345678910111213141516171819202122232425262728
// find example#include <iostream> // std::cout#include <algorithm> // std::find#include <vector> // std::vectorint main () { // using std::find with array and pointer: int myints[] = { 10, 20, 30, 40 }; int * p; p = std::find (myints, myints+4, 30); if (p != myints+4) std::cout << "Element found in myints: " << *p << '\n'; else std::cout << "Element not found in myints\n"; // using std::find with vector and iterator: std::vector<int> myvector (myints,myints+4); std::vector<int>::iterator it; it = find (myvector.begin(), myvector.end(), 30); if (it != myvector.end()) std::cout << "Element found in myvector: " << *it << '\n'; else std::cout << "Element not found in myints\n"; return 0;}
Edit & Run
Output:
Element found in myints: 30Element found in myvector: 30
Complexity
Up to linear in the distance between first and last: Compares elements until a match is found.Data races
Some (or all) of the objects in the range[first,last)
are accessed (once at most).Exceptions
Throws if either an element comparison or an operation on an iterator throws.Note that invalid arguments cause undefined behavior.
——————————————————————————————————————————————————————————————————
//写的错误或者不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双
Email:coderguang@gmail.com
2014-9-11
于GDUT
——————————————————————————————————————————————————————————————————
0 0
- STL algorithm算法find(16)
- STL algorithm find
- STL algorithm find() demo
- STL algorithm算法adjacent_find(4)
- STL algorithm算法fill_n(15)
- STL algorithm算法for_each(21)
- STL algorithm算法lexicographical_compare(30)
- STL algorithm算法search,search_n(52)
- STL algorithm算法set_difference,set_intersection(53)
- STL algorithm算法unique,unique_copy(58)
- STL 笔记(五) 算法 algorithm
- STL 笔记(五) 算法 algorithm
- STL algorithm算法(01):adjacent_find
- STL algorithm算法(02):all_of
- STL algorithm算法集合
- 【STL】algorithm算法介绍
- c++ stl algorithm: std::find, std::find_if
- c++ stl algorithm: std::find, std::find_if
- 计算机网络相关
- 模型(Model)类
- Minimum Window Substring
- 关于nova-manage service list检测服务状态原理
- Spring3.x--初始化和销毁Bean
- STL algorithm算法find(16)
- Evaluate Reverse Polish Notation
- 【刷题小记22】素数求和问题
- poj3627~贪心~排序~小水题
- Python的lambda匿名函数
- nyoj100一的个数
- unresolved external symbol _WinMain@16
- 《C++Primer》学习笔记(1-5章)
- js声明变量使用var声明与不使用var声明比较