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 //二分查 ...
随机推荐
- SqlServer2008查询性能优化_第一章
- LTE常用标识和参数
1 基本标识 1 .1 IMSI 1.2 IMEI 1.3 MSISDN 1.4 TMSI 1.5 MSRN 2 区域类标识 2.1 GCI 其中 LA是GSM(2g)中的位置区,对应4G中的跟踪区T ...
- 【PyTorch】深度学习与PyTorch资料链接整理
欢迎来到我的博客! 以下链接均是日常学习,偶然得之,并加以收集整理,感兴趣的朋友可以多多访问和学习.如果以下内容对你有所帮助,不妨转载和分享.(Update on 5,November,2019) 1 ...
- [工具推荐]_iOS音频批量转换
通常为了便于市场推广和获得更高的下载量,产品安装包的体积是越小越好.那么问题来了,要如何才能做到使安装包的体积最小化呢.根据产品的组成成分,最终可以大概分为,代码,图片,视频,音频等这几部分,今天我们 ...
- 域渗透分析工具BloodHound
简介:BloodHound是一款将域内信息可视化的单页的web应用程序,是一款在域内进行信息收集的免费工具: Kali中直接命令安装即可 apt-get install bloodhound 打开lo ...
- css background-image 学习笔记
先给出图片原样 1.默认从从上到右下1比1 填充的,如果元素的高度和宽度小于图片,则只能显示部分图片.效果如下图 2.如果元素的高度和宽度大于图片,则默认会用图片平铺元素.效果如下图 3.可以是用ba ...
- Jenkins漏洞利用复现
一.未授权访问 访问url: http://172.16.20.134:8080/script 命令执行 println "ls -al".execute().text 也可以利用 ...
- Spring boot Sample 008之spring-boot-logback
一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.目的 spring boot 整合log4j2 二.步骤 2.1.点击File -> New Project -> S ...
- Java实现 LeetCode 284 顶端迭代器
284. 顶端迭代器 给定一个迭代器类的接口,接口包含两个方法: next() 和 hasNext().设计并实现一个支持 peek() 操作的顶端迭代器 – 其本质就是把原本应由 next() 方法 ...
- Java实现 蓝桥杯 算法提高 字符串压缩
试题 算法提高 字符串压缩 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩: (1) 如果该字符是 ...