c++中std::find()函数
概述:
find()函数就是在指定迭代器范围内查找要查找的数据.
find函数在容器的内部已经存在了,但是stl还提供一个全局的find函数.
原因: 对于容器内置的find()函数是专门对于当前容器的结构进行设置的, 其内部可能会有相应的优化, 在处理特定的容器的查找的时候,具有更高的效率. 所以对于容器中有内置的find的时候,应该使用内置的find.
像vector,list,deque其内部都没有内置的find,就可以使用全局的find实现在一定范围内查找某样数据, 当然你也可以直接使用循环在指定范围内比较比较. (其实全局的find内部就是简单的在给定范围内比较), 使用这个函数可以避免重复造轮子.
find的使用:
- find(iter1,iter2,target), // 传入两个圈定范围的迭代器, 然后给定要找的目标值, 其找到之后,会返回找到的第一个满足要求值的迭代器, 否则返回与end()一样的迭代器位置.
- find(arr,arr+5,'a'); // 其还可以用来查找其它序列中对应范围的元素, 传递两个指针指定范围, 传递要找的目标值, 找到返回指向第一个满足要求值的指针, 否则返回NULL.