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 常用查找算法相关推荐

  1. C++STL常用查找算法

    C++STL常用查找算法 学习目标 算法简介 find 功能描述 函数原型 示例 总结 find_if 功能描述 函数原型 示例 总结 adjacent_find 功能描述 函数原型 示例 总结 bi ...

  2. [C++STL]常用查找算法

    代码如下: #include <iostream> #include <algorithm> #include <vector> #include <stri ...

  3. STL算法——常用查找算法(find、find_if、adjacent_find、binary_search、count、count_if)

    5.2 常用查找算法 学习目标: 掌握常用的查找算法 算法简介: find //查找元素 find_if //按条件查找元素 adjacent_find //查找相邻重复元素 binary_searc ...

  4. C++STL常用遍历算法

    C++STL常用遍历算法 概述 学习目标 算法简介 for_each 功能描述 函数原型 示例 总结 transform 功能描述 函数原型 示例 总结 概述 算法主要是由头文件<algorit ...

  5. C++ STL 常用遍历算法

    C++ STL 常用遍历算法 STL的容器算法迭代器的设计理念 1) STL的容器通过类模板技术,实现数据类型和容器模型的分离  2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供 ...

  6. C++STL常用集合算法

    C++STL常用集合算法 学习目标 算法简介 set_intersection 功能描述 函数原型 示例 总结 set_union 功能描述 函数原型 示例 总结 set_difference 功能描 ...

  7. C++STL常用排序算法

    C++STL常用排序算法 学习目标 算法简介 sort 功能描述 函数原型 示例 总结 random_shuffle 功能描述 函数原型 示例 总结 merge 功能描述 函数原型 示例 总结 rev ...

  8. C++实现常用查找算法

    在日常编程和面试中,查找算法和排序算法需要非常熟练.本文用C++语言的语法来写常用的查找算法:顺序查找,二分查找, 一.顺序查找 1.1基本思想(有序无序皆可以) 1 从表中的第一个元素开始,依次与关 ...

  9. C++常用查找算法总结(一)

    查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找,字段的查找,等等. 1.查找算法总结 (1). 最容易理解的查找算法,顺序查找法 说明:顺 ...

最新文章

  1. 未来的程序员面临着怎样的职业变化
  2. COMP0037 Coursework Investigating Path Planning Algorithms
  3. 安卓java模拟器_用大白话告诉你:Java 后端到底是在做什么?
  4. 【XSY2111】Chef and Churus 分块 树状数组
  5. python的pip换源_浅析Python3 pip换源问题
  6. maven项目部署到linux上的奇葩问题
  7. 从阅读空间到QQ阅读,一个web2.0向web1.0的倒退的产品
  8. keil5建立工程步骤_5个步骤建立实践社区
  9. 动态规划之《寻找最大上升序列》
  10. 除了人工智能,霍金还担心“游牧外星人”会摧毁人类
  11. 史上超全web渗透测试思维导图
  12. 如何注册PayPal账户
  13. [转]读《简约至上》有感 - 及我的支语片言
  14. 高级图表常用颜色RGB参数
  15. 社科院与杜兰大学金融管理硕士——承载梦想,带自己遨游世界的“风帆”
  16. mysql workbench 1046,错误1046未选择数据库,如何解决?
  17. (vue)vue导出excel文件打不开,或者文件内容为object object
  18. Linux OS: Write Barriers
  19. 服务器i620-g15用什么型号内存,定位不同领域 曙光I620-G15服务器评测
  20. 手机拍的试卷打印出来是黑的一片怎么办

热门文章

  1. elasticsearch 第二篇(配置篇)
  2. Java程序员从笨鸟到菜鸟之(八十九)跟我学jquery(五)jquery中的ajax详解
  3. matlab用循环批量生成多个变量,神奇的eval()函数
  4. 图像检索中BOW和LSH的一点理解
  5. Day 11: AeroGear 推送服务器:使应用的通知推送变得简单
  6. GitHub添加SSH keys报错Key is invalid. It must begin with 'ssh-ed25519', 'ssh-rsa', 'ssh-dss', 'ecdsa-sha
  7. 编程之美-电话号码对应英文单词方法整理
  8. 编程之美-俄罗斯方块游戏方法整理
  9. Matlab之for循环语句
  10. 【OpenCV3】如何给图像添加(不)透明度通道