C++ STL 查找多个结果
来源:互联网 发布:pubmed数据库是什么 编辑:程序博客网 时间:2024/06/03 17:58
使用find_if()函数查找到第一个符合条件的数据后,it就指向了该符合条件的数据,
对于vector的iterator使用++操作时,就指向了当前的下一个元素,但是,下一个元素
并不一定是满足条件的数据,所以不能使用++操作来指向下一个元素,而是要用循环
来获取所有满足条件的元素,如下:
...
vector<int>::iterator it = find_if(intVector.begin(), intVector.end(), fun);
if ( it != intVector.end() )
{
//此时it指向第一个满足条件的元素了
}
while ( it != intVecotr.end() )
{
it++;//让it指想满足条件的元素的下一个元素,即,再次搜索时从满足条件的元素的下一个位置开始
it = find_if(it, intVector.end(), fun);
if ( it != intVector.end() )
{
//此时的it是再次找到的符合要求的元素
}
}
...
=====================================
别的办法最简单的就是排序了,你自定义一个针对你的数据类型做一个排序函数,排好序后,符合你要求的元素就排到了一起了,找到第一个符合你要求的元素后,就可以使用++来挨个访问他们,直到访问到不符合你要求的元素为止.
对于vector的iterator使用++操作时,就指向了当前的下一个元素,但是,下一个元素
并不一定是满足条件的数据,所以不能使用++操作来指向下一个元素,而是要用循环
来获取所有满足条件的元素,如下:
...
vector<int>::iterator it = find_if(intVector.begin(), intVector.end(), fun);
if ( it != intVector.end() )
{
//此时it指向第一个满足条件的元素了
}
while ( it != intVecotr.end() )
{
it++;//让it指想满足条件的元素的下一个元素,即,再次搜索时从满足条件的元素的下一个位置开始
it = find_if(it, intVector.end(), fun);
if ( it != intVector.end() )
{
//此时的it是再次找到的符合要求的元素
}
}
...
=====================================
别的办法最简单的就是排序了,你自定义一个针对你的数据类型做一个排序函数,排好序后,符合你要求的元素就排到了一起了,找到第一个符合你要求的元素后,就可以使用++来挨个访问他们,直到访问到不符合你要求的元素为止.
0 0
- C++ STL 查找多个结果
- 二分查找 C 、C++STL
- STL中查找算法(13个)
- C++/STL/VC资源链接(查找方便)
- C++/STL/VC资源链接(查找方便)
- STL中与二分查找相关的4个函数
- 输出多个结果集
- FW:C++/STL/VC资源链接(查找方便)
- C++STL二分查找函数集及补充
- 面试题15 - 查找最小的 k 个元素 [数组] / (堆优化 STL O(nlogk) )[STL]
- 10个C语言常见未定义与执行结果
- vim 查找多个文件
- 多个关键字 查找log
- 关于PHP的strpos函数查找结果在第一个字母时的判定
- C++STL里面7个常用容器的比较
- UNION合并多个结果集
- sql2005使用多个结果集
- mysql limit 处理多个返回结果
- Spring MVC 框架搭建及详解
- 构建FTP服务器——server-u
- 成为明星程序员的10个提示
- 解析xx.properties文件信息
- 【编译问题/JAVA】Class path contains multiple SLF4J bindings
- C++ STL 查找多个结果
- hdu1074(集合上的动态规划 状态压缩)
- oracle客户端连接oracle数据库有关配置
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- 最值得珍惜的东西
- 跟我学做c#皮肤美化
- C++ 程序员必经之路 —— 构造、析构、虚析构
- bootstrap翻译文档
- 有关hadoop执行包含外在jar包的jar包程序