STL 之find,find_if,find_end,find_first_of
来源:互联网 发布:java随机数生成1到6 编辑:程序博客网 时间:2024/05/17 13:13
返回
作用:用来在一个指定的区间中查找元素。
1,find, find_if
原型:
#include <algorithm>template <class inputItr,class size,class Type>inputItr find(inputItr first, inputItr last, const Type& searchValue);template <class inputItr, class unaryPredicate>inputItr find_if(inputItr first, inputItr last, UnaryPredicate op);
示例代码:
#include <iostream>#include <list>#include <string>#include <numeric>#include <iterator>#include <vector>#include <functional>#include <algorithm>using namespace std;int main() {char cList[10] = {'a','i','C','d','e','f','o','H','u','j'};vector<char> charList(cList,cList+10);ostream_iterator<char> screen(cout, " ");cout << "charList:" << endl;copy(charList.begin(),charList.end(),screen);cout << endl;// 定义迭代器vector<char>::iterator position;position = find(charList.begin(),charList.end(),'d');if ( position != charList.end()) {cout << "position = " << (position - charList.begin()) << endl; } else {cout << "the element is not in the list" << endl;}position = find_if(charList.begin(),charList.end(),isupper);if ( position != charList.end()) {cout << "position = " << (position - charList.begin()) << endl; } else {cout << "the element is not in the list" << endl;}return 0;}
运行结果:
charList:
a i C d e f o H u j
position = 3
position = 2
2,find_end,find_first_of
声明:
#include <algorithm>template <class forwardItr1,class forwardItr2>forwardItr1 find_end(forwardItr1 first1, forwardItr1 last1,forwardItr2 first2,forwardItr2 last2);template <class forwardItr1,class forwardItr2,class binaryPredicate>forwardItr1 find_end(forwardItr1 first1, forwardItr1 last1,forwardItr2 first2,forwardItr2 last2,binaryPredicate op);template <class forwardItr1,class forwardItr2>forwardItr1 find_first_of(forwardItr1 first1, forwardItr1 last1,forwardItr2 first2,forwardItr2 last2);template <class forwardItr1,class forwardItr2,class binaryPredicate>forwardItr1 find_first_of(forwardItr1 first1, forwardItr1 last1,forwardItr2 first2,forwardItr2 last2,binaryPredicate op);
示例代码:
#include <iostream>#include <list>#include <string>#include <numeric>#include <iterator>#include <vector>#include <functional>#include <algorithm>using namespace std;int main() {int list1[10] = {12,34,56,21,34,78,34,56,12,25};int list2[2] = {34,56};int list3[3] = {56,21,35};int list4[5] = {33,48,21,34,73};vector<int> vecList1(list1,list1+10); vector<int> vecList2(list2,list2+2); vector<int> vecList3(list3,list3+3); vector<int> vecList4(list4,list4+5); vector<int>::iterator localtion;ostream_iterator<int> screen(cout, " ");cout << "List1" << endl;copy(list1,list1+10,screen);cout << endl;cout << "List2" << endl;copy(list2,list2+2,screen);cout << endl;// find_end 查找最后一个匹配// 在vecList1 中查找vecList2localtion = find_end(vecList1.begin(),vecList1.end(),vecList2.begin(),vecList2.end());if (localtion != vecList1.end()){cout << "position = " << (localtion - vecList1.begin()) << endl;} else {cout << "vecList2 is not in list1" << endl;}cout << "List3:" << endl;copy(vecList3.begin(),vecList3.end(),screen);cout << endl;localtion = find_end(vecList1.begin(),vecList1.end(),vecList3.begin(),vecList3.end());if (localtion != vecList1.end()){cout << "position = " << (localtion - vecList1.begin()) << endl;} else {cout << "vecList3 is not in list1" << endl;}cout << "List4:" << endl;copy(vecList4.begin(),vecList4.end(),screen);cout << endl;// find_first_of 首次出现的位置// 可以检查两个容器中元素是否相互包含localtion = find_first_of(vecList1.begin(),vecList1.end(),vecList4.begin(),vecList4.end());if (localtion != vecList1.end()){cout << "position = " << (localtion - vecList1.begin()) << endl;} else {cout << "No element of List4 is in list1" << endl;}return 0;}
运行结果:
List1
12 34 56 21 34 78 34 56 12 25
List2
34 56
position = 6
List3:
56 21 35
vecList3 is not in list1
List4:
33 48 21 34 73
position = 1
2 0
- STL 之find,find_if,find_end,find_first_of
- STL 之find,find_if,find_end,find_first_of
- 实战c++中的vector系列--vector应用之STL的find、find_if、find_end、find_first_of、find_if_not(C++11)
- 非变异算法之查询( find(), find_if(), find_first_of, adjacent_find(), find_end(), search(), search_n() )
- find()、find_end()、find_first_of()、find_if()的使用示例和区别
- find,find_if,find_end函数
- STL 之 find find_if
- STL 之find & find_if
- find_end,find_first_of
- C++ STL算法系列2---find ,find_first_of , find_if , adjacent_find的使用
- C++ STL算法系列2---find ,find_first_of , find_if , adjacent_find的使用
- C++ STL算法系列2---find ,find_first_of , find_if , adjacent_find的使用
- C++ STL算法系列2---find ,find_first_of , find_if , adjacent_find的使用
- C++ STL算法系列2---find ,find_first_of , find_if , adjacent_find的使用
- find ,find_first_of , find_if , adjacent_find的使用
- STL之for_each, cout, cout_if, find, find_if
- stl find和find_if
- STL-find,find_if函数
- ios 字符串比较 日期比较
- 常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图)
- 八数码问题的解决方案
- 2014-04-15第十六周周二工作日志:时间表
- 连载:面向对象葵花宝典:思想、技巧与实践(26) - 类模型三板斧
- STL 之find,find_if,find_end,find_first_of
- 如何在Centos下解压和压缩rar文件
- common sequence
- Android Junit Testing
- ASP.Net 定制错误页面
- 有用的VIM使用技巧
- css小记
- 类似百度 google的模糊搜索下拉列表
- 使用MemCache进行相关缓存的保存处理