c++之STL(13) STL 算法 - 查找算法(3)search() find_end()
来源:互联网 发布:电脑自动按键软件 编辑:程序博客网 时间:2024/06/06 13:06
search() 是从前面找
find_end() 是从后面找
注意:两个算法是一对,第二个算法叫search_end(),但是被命名为find_end();
两个都是用来在容器中查找,连续的数据在容器中是否存在
两个方法都可以使用谓词
#include<iostream>#include<algorithm>#include<deque>#include<list>//using namespace std;// 二元谓词bool checkEven(int elem, bool even){if (even)return elem % 2 == 0;elsereturn elem % 2 == 1;}int main(){deque<int> ideq;list<int> ilist;for (int i = 1; i <= 7; i++)ideq.insert(ideq.end(), i);for (int i = 1; i <= 7; i++)ideq.insert(ideq.end(), i);for (int i = 1; i <= 7; i++)ideq.insert(ideq.end(), i);for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); iter++)cout << *iter << ' ';cout << endl;for (int i = 3; i <= 6; i++)ilist.insert(ilist.end(), i);for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); iter++)cout << *iter << ' ';cout << endl;deque<int>::iterator pos;pos = search(ideq.begin(), ideq.end(), ilist.begin(), ilist.end());/*if (pos != ideq.end())cout << "找到了:" << distance(ideq.begin(), pos) + 1 << endl;elsecout << "没找到!" << endl;++pos;pos = search(pos, ideq.end(), ilist.begin(), ilist.end());if (pos != ideq.end())cout << "找到了:" << distance(ideq.begin(), pos) + 1 << endl;elsecout << "没找到!" << endl;*/while (pos != ideq.end()){cout << "找到了:" << distance(ideq.begin(), pos) + 1 << endl;++pos;pos = search(pos, ideq.end(), ilist.begin(), ilist.end());}cout << "使用find_end进行查找" << endl;// 从后面看开始找pos = find_end(ideq.begin(), ideq.end(), ilist.begin(), ilist.end());if (pos != ideq.end())cout << "找到了:" << distance(ideq.begin(), pos) + 1 << endl;elsecout << "没找到!" << endl; //system("pause");return 0;}
#include<iostream>#include<algorithm>#include<vector>#include<list>//using namespace std;// 二元谓词bool checkEven(int elem, bool even){if (even)return elem % 2 == 0;elsereturn elem % 2 == 1;}int main(){vector<int> ivec;for (int i = 1; i <= 9; i++)//ivec.insert(ivec.end(), i);ivec.push_back(i);for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); iter++)cout << *iter << ' ';cout << endl;bool checkEvenArgs[3] = { true, false, true };// 偶数 奇数 偶数vector<int>::iterator pos;pos = search(ivec.begin(), ivec.end(), checkEvenArgs, checkEvenArgs + 3, checkEven);if (pos != ivec.end())cout << "找到了!位置:" << distance(ivec.begin(), pos) + 1 << endl;elsecout << "没找到!" << endl;//system("pause");return 0;}
0 0
- c++之STL(13) STL 算法 - 查找算法(3)search() find_end()
- C++ STL 算法:查找算法(3)search、find_end
- stl算法 find_end的用法
- STL algorithm算法find_end(17)
- c++之STL(13) STL 算法 - 查找算法(1)
- C++的STL之search()与find_end()
- STL_算法_查找算法(search、find_end)
- STL算法之查找
- STL算法之查找
- STL之查找算法
- STL算法------查找3
- C STL 之算法
- 39STL之查找算法
- c++之STL(13) STL 算法 - 查找算法(7)lower_bound() upper_bound() equal_range(0
- 简单的程序诠释C++ STL算法系列之十二:find_end
- STL算法总结之查找算法示例
- stl算法-search
- c++之STL(13) STL 算法 - 查找算法(2)search_n() search_n(b, e, c, v) search_n(b, e, c, v, p)
- MyEclipse2015 安装activiti-designer 5.18
- Wireshark入门与进阶系列九之HTTP流量分析
- python读写文件
- 夏令营-开营测试
- Dynamics CRM 不同的站点地图下设置默认不同的仪表板
- c++之STL(13) STL 算法 - 查找算法(3)search() find_end()
- 简单的使用定时器实现按键消抖,写得不好,望大家给指点一二。多谢了。
- 【解题报告】2016.8.4·OI夏令营·开营测试
- HTML5中的Canvas
- [又值奥运季] 2016年里约奥运会--8月6日赛事
- 2016.8.4信息学训练营练习
- 学习Flask摘要 - 第1,2章
- 定时任务的配置 及原理
- 【读书笔记】java构造器