C++ STL 常用查找算法
C++ STL 常用查找算法
adjacent_find()
在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。
vector<int> vecInt;
vecInt.push_back(1);
vecInt.push_back(2);
vecInt.push_back(2);
vecInt.push_back(4);
vecInt.push_back(5);
vecInt.push_back(5);
vector<int>::iterator it = adjacent_find(vecInt.begin(), vecInt.end()); //*it == 2
binary_search
在有序序列中查找value,找到则返回true。注意:在无序序列中,不可使用。
set<int> setInt;
setInt.insert(3);
setInt.insert(1);
setInt.insert(7);
setInt.insert(5);
setInt.insert(9);
bool bFind = binary_search(setInt.begin(),setInt.end(),5);
count()
利用等于操作符,把标志范围内的元素与输入值比较,返回相等的个数。
vector<int> vecInt;
vecInt.push_back(1);
vecInt.push_back(2);
vecInt.push_back(2);
vecInt.push_back(4);
vecInt.push_back(2);
vecInt.push_back(5);
int iCount = count(vecInt.begin(),vecInt.end(),2); //iCount==3
count_if()
假设vector<int> vecIntA,vecIntA包含1,3,5,7,9元素
//先定义比较函数
bool GreaterThree(int iNum)
{
if(iNum>=3)
{
return true;
}
else
{
return false;
}
}
int iCount = count_if(vecIntA.begin(), vecIntA.end(), GreaterThree); //此时iCount == 4
find()
find: 利用底层元素的等于操作符,对指定范围内的元素与输入值进行比较。当匹 配时,结束搜索,返回该元素的迭代器。
equal_range: 返回一对iterator,第一个表示lower_bound,第二个表示 upper_bound。
vector<int> vecInt;
vecInt.push_back(1);
vecInt.push_back(3);
vecInt.push_back(5);
vecInt.push_back(7);
vecInt.push_back(9);
vector<int>::iterator it = find(vecInt.begin(), vecInt.end(), 5); //*it == 5
find_if()
find_if: 使用输入的函数代替等于操作符执行find。返回被找到的元素的迭代器。
假设vector<int> vecIntA,vecIntA包含1,3,5,3,9元素
vector<int>::it = find_if(vecInt.begin(),vecInt.end(),GreaterThree);
此时 *it==3, *(it+1)==5, *(it+2)==3, *(it+3)==9
C++ STL 常用查找算法相关推荐
- C++STL常用查找算法
C++STL常用查找算法 学习目标 算法简介 find 功能描述 函数原型 示例 总结 find_if 功能描述 函数原型 示例 总结 adjacent_find 功能描述 函数原型 示例 总结 bi ...
- [C++STL]常用查找算法
代码如下: #include <iostream> #include <algorithm> #include <vector> #include <stri ...
- STL算法——常用查找算法(find、find_if、adjacent_find、binary_search、count、count_if)
5.2 常用查找算法 学习目标: 掌握常用的查找算法 算法简介: find //查找元素 find_if //按条件查找元素 adjacent_find //查找相邻重复元素 binary_searc ...
- C++STL常用遍历算法
C++STL常用遍历算法 概述 学习目标 算法简介 for_each 功能描述 函数原型 示例 总结 transform 功能描述 函数原型 示例 总结 概述 算法主要是由头文件<algorit ...
- C++ STL 常用遍历算法
C++ STL 常用遍历算法 STL的容器算法迭代器的设计理念 1) STL的容器通过类模板技术,实现数据类型和容器模型的分离 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供 ...
- C++STL常用集合算法
C++STL常用集合算法 学习目标 算法简介 set_intersection 功能描述 函数原型 示例 总结 set_union 功能描述 函数原型 示例 总结 set_difference 功能描 ...
- C++STL常用排序算法
C++STL常用排序算法 学习目标 算法简介 sort 功能描述 函数原型 示例 总结 random_shuffle 功能描述 函数原型 示例 总结 merge 功能描述 函数原型 示例 总结 rev ...
- C++实现常用查找算法
在日常编程和面试中,查找算法和排序算法需要非常熟练.本文用C++语言的语法来写常用的查找算法:顺序查找,二分查找, 一.顺序查找 1.1基本思想(有序无序皆可以) 1 从表中的第一个元素开始,依次与关 ...
- C++常用查找算法总结(一)
查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找,字段的查找,等等. 1.查找算法总结 (1). 最容易理解的查找算法,顺序查找法 说明:顺 ...
最新文章
- 未来的程序员面临着怎样的职业变化
- COMP0037 Coursework Investigating Path Planning Algorithms
- 安卓java模拟器_用大白话告诉你:Java 后端到底是在做什么?
- 【XSY2111】Chef and Churus 分块 树状数组
- python的pip换源_浅析Python3 pip换源问题
- maven项目部署到linux上的奇葩问题
- 从阅读空间到QQ阅读,一个web2.0向web1.0的倒退的产品
- keil5建立工程步骤_5个步骤建立实践社区
- 动态规划之《寻找最大上升序列》
- 除了人工智能,霍金还担心“游牧外星人”会摧毁人类
- 史上超全web渗透测试思维导图
- 如何注册PayPal账户
- [转]读《简约至上》有感 - 及我的支语片言
- 高级图表常用颜色RGB参数
- 社科院与杜兰大学金融管理硕士——承载梦想,带自己遨游世界的“风帆”
- mysql workbench 1046,错误1046未选择数据库,如何解决?
- (vue)vue导出excel文件打不开,或者文件内容为object object
- Linux OS: Write Barriers
- 服务器i620-g15用什么型号内存,定位不同领域 曙光I620-G15服务器评测
- 手机拍的试卷打印出来是黑的一片怎么办
热门文章
- elasticsearch 第二篇(配置篇)
- Java程序员从笨鸟到菜鸟之(八十九)跟我学jquery(五)jquery中的ajax详解
- matlab用循环批量生成多个变量,神奇的eval()函数
- 图像检索中BOW和LSH的一点理解
- Day 11: AeroGear 推送服务器:使应用的通知推送变得简单
- GitHub添加SSH keys报错Key is invalid. It must begin with 'ssh-ed25519', 'ssh-rsa', 'ssh-dss', 'ecdsa-sha
- 编程之美-电话号码对应英文单词方法整理
- 编程之美-俄罗斯方块游戏方法整理
- Matlab之for循环语句
- 【OpenCV3】如何给图像添加(不)透明度通道