cb28a_c++_STL_算法_查找算法_(1)find_find_if
cb28a_c++_STL_算法_查找算法_(1)find_find_if
find() //线性查找,比较慢。
pos1 = find(ilist.begin(), ilist.end(), 5);
find_if()
search_n()
search()
find_end()
find_first_of()
adjacent_find()
注意:
1.如果是已序区间,可以使用已序区间的查找算法(效率高)
binary_search()
includes()
lower_bound()
upper_bound()
2.关联是容器有等效的成员函数find(),set,map
3.string有等效的成员函数find(),不能使用 算法的 find(),find_if().算法的find适合所有容器使用
/*cb28a_c++_STL_算法_查找算法_(1)find_find_if
find() //线性查找,比较慢。
pos1 = find(ilist.begin(), ilist.end(), 5);
find_if()
search_n()
search()
find_end()
find_first_of()
adjacent_find()
注意:
1.如果是已序区间,可以使用已序区间的查找算法(效率高)
binary_search()
includes()
lower_bound()
upper_bound()
2.关联是容器有等效的成员函数find(),set,map
3.string有等效的成员函数find(),不能使用 算法的 find(),find_if().算法的find适合所有容器使用
*/ #include <iostream>
#include <algorithm>
#include <list> using namespace std;
int main()
{
list<int> ilist;
for (int i = ; i <= ; ++i)
ilist.insert(ilist.end(), i);
for (int i = ; i <= ; ++i)
ilist.insert(ilist.end(), i);
for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << ' ';
cout << endl; list<int>::iterator pos1;
pos1 = find(ilist.begin(), ilist.end(), );
cout << "找到后返回迭代器" << endl;
list<int>::iterator pos2;
if (pos1 != ilist.end())
{
pos2 = find(++pos1, ilist.end(), ); }
if (pos1 != ilist.end() && pos2 != ilist.end())
{
cout << "显示两个5之间的数据" << endl;
for (list<int>::iterator iter = pos1; iter != pos2; ++iter)
cout << *iter << ' ';
cout << endl;
} }
/*cb28b_c++_ */
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional> using namespace std; int main()
{
vector<int> ivec;
vector<int>::iterator pos; for (int i = ; i >= ; --i)
ivec.push_back(i);
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
cout << "vector数据是:" << *iter << ' ';
cout << endl; pos = find_if(ivec.begin(), ivec.end(), bind2nd(greater<int>(), ));
//https://www.cnblogs.com/txwtech/p/12330413.html
cout <<"大于3的数: "<< *pos << endl; pos = find_if(ivec.begin(), ivec.end(), not1(bind2nd(modulus<int>(), )));
//modulus取模运算:找一个被3整除的数,找到后,bind2nd返回的取模的结果是0
//not1取反,就可以返回1
//https://www.cnblogs.com/txwtech/p/12330413.html
cout << "找一个被3整除的数: " <<*pos<< endl;
return ;
}
/*cb28c_c++ txwtech@163.com
*/ #include <iostream>
#include <set> using namespace std; int main()
{
set<int> iset;
iset.insert(); //插入数据,自动排序。已序区间
iset.insert();
iset.insert(-);
iset.insert(); for (set<int>::iterator iter = iset.begin(); iter != iset.end(); ++iter)
cout << *iter << ' ';
cout << endl;
set<int>::iterator pos;
pos = iset.find();//类似2分查找,速度快
if (pos != iset.end())
cout << "找到了" << *pos << endl;
else
cout << "没找到" << endl; return ;
}
/*cb28d
*/
#include <iostream>
#include <string> using namespace std; int main()
{
string s("AnnaBelle"); string::size_type pos = s.find("nna");
if (pos != string::npos)
cout << "找到了,下标是:" << pos << endl;
else
cout << "没找到" << endl; pos = s.find("bell");
if (pos != string::npos)
cout << "找到了,下标是:" << pos << endl;
else
cout << "没找到" << endl; return ;
}
cb28a_c++_STL_算法_查找算法_(1)find_find_if的更多相关文章
- cb34a_c++_STL_算法_查找算法_(7)_lower_bound
cb34a_c++_STL_算法_查找算法_(7)_lower_bound//针对已序区间的查找算法,如set,multiset关联容器-自动排序lower_bound()--第一个可能的位置uppe ...
- cb33a_c++_STL_算法_查找算法_(6)binary_search_includes
cb33a_c++_STL_算法_查找算法_(6)binary_search_includes//针对已序区间的查找算法,如set,multiset关联容器-自动排序binary_search(b,e ...
- cb32a_c++_STL_算法_查找算法_(5)adjacent_find
cb32a_c++_STL_算法_查找算法_(5)adjacent_findadjacent_find(b,e),b,begin(),e,end()adjacent_find(b,e,p),p-par ...
- cb31a_c++_STL_算法_查找算法_(4)find_first_of
cb31a_c++_STL_算法_查找算法_(4)find_first_offind_first_of(b,e,sb,se),sb,second begin, se,second end();find ...
- cb30a_c++_STL_算法_查找算法_(3)search_find_end
cb30a_c++_STL_算法_查找算法_(3)search_find_endsearch()pos = search(ideq.begin(), ideq.end(), ilist.begin() ...
- cb29a_c++_STL_算法_查找算法_(2)search_n
cb29a_c++_STL_算法_查找算法_(2)search_n//比如:连续查找连续的n个8search_n(b,e,c,v),迭代器b,begin(),e,end().连续的c个vpos=sea ...
- STL_算法_查找算法(lower_bound、upper_bound、equal_range)
C++ Primer 学习中. .. 简单记录下我的学习过程 (代码为主) //全部容器适用(O(log(n))) 已序区间查找算法 lower_bound() //找第一个符合的 ...
- STL_算法_查找算法(find、find_if)
C++ Primer 学习中. .. 简单记录下我的学习过程 (代码为主) find . find_if /**********************线性查找O(n) find(); find_if ...
- STL_算法_查找算法(binary_search、includes)
C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) 全部容器适用(O(log(n))) 已序区间查找算法 binary_search //二分查 ...
随机推荐
- 织梦DEDECMS网站如何生成xml格式网站地图
这个很简单,按照我下边提供的方法进行操作就可以了,我一直在用 第一步,登陆DedeCMS后台:核心 - 频道模型- 自由列表管理,点击添加列表: 参数按照下边的填写: 自由列表标题:[XML地图] 列 ...
- php实用正则
1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z ...
- web自动化之鼠标事件
鼠标操作from selenium.webdriver.common.action_chains import ActionChains通过ActionChains 类来完成鼠标操作主要操作流程:1. ...
- [SSH]iPhone发生意外时,如何备份iPhone中的数据
相信喜欢折腾iPhone的果粉,对下面2张图并不陌生,下面两张图就是我们在折腾iPhone时可能会遇到的情况. 注: 左图是恢复模式时的界面,和DFU模式有点不同.开机如果直接显示该界面,说明机子可能 ...
- Rocket - diplomacy - ValName
https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ 简单调试ValName实现: 1. 使用 Desugar之后如下: ...
- 程序员的脑袋系列---利用ffmpeg命令提取音频
今日各大播放器的版权控制越来越严格.导致很多歌曲无法听,但是MV却可以听.这样很蛋疼有木有? 然而,我们可以利用ffmpeg工具提取MV的音频,比如做成MP3格式,这样就可以听了.--哈哈(邪恶地笑) ...
- Java实现 LeetCode 672 灯泡开关 Ⅱ(数学思路问题)
672. 灯泡开关 Ⅱ 现有一个房间,墙上挂有 n 只已经打开的灯泡和 4 个按钮.在进行了 m 次未知操作后,你需要返回这 n 只灯泡可能有多少种不同的状态. 假设这 n 只灯泡被编号为 [1, 2 ...
- Java实现旅行商问题
1 问题描述 何为旅行商问题?按照非专业的说法,这个问题要求找出一条n个给定的城市间的最短路径,使我们在回到触发的城市之前,对每个城市都只访问一次.这样该问题就可以表述为求一个图的最短哈密顿回路的问题 ...
- java实现第四届蓝桥杯逆波兰表达式
逆波兰表达式 正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便. 例如:3 + 5 * (2 + 6) - 1 而且,常常需要用括号来改变运算次序. 相反,如果使用逆波兰表 ...
- pip常出问题的操作
pip 是一个 Python 包安装与管理工具. 以pip安装yaml为主: 1.更新pip 打开cmd命令,安装yaml包,输入pip install pyyaml,提示pip已过期 更新pip版本 ...