算法通过迭代器得到容器的某些特质,这样便能够找到最为高效的解决问题的方案。


random_access_iterator_tag :array、vector、deque
bidirectional_iterator_tag : List、Set / Multiset、Map /Multimap 、
forward_iterator_tag : forward_list
input_iterator_tag :istream
output_iterator : ostream

hash_table 看具体的篮子下方的链表的实现来决定链表的遍历的方式。


上面的图片当中,使用 iterator_traits 来获取容器的迭代器种类,之后再通过一系列的重载函数打印出来。


也可以不自己写函数获取迭代器的种类,可以直接通过内置的 typeid 函数来获得函数的名称。编译的时候会在名称的前后加上数字或者是在后面加上字母。最后得到的迭代器种类的名称和具体使用的 library 有关。

相关的面试题:
1、说一下每一种容器对应的迭代器?

容器名称 迭代器
array,vector,deque 随机访问迭代器
stack,queue,priority_queue
list、(multi)set / map 双向迭代器
unordered_( multi ) map / set、forword_list 单向迭代器

2022-1-13 c++STL——算法、迭代器的分类相关推荐

  1. C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  2. 【C++】C++11 STL算法(一):非修改序列操作(Non-modifying sequence operations)

    目录 一.all_of.any_of.none_of: 1.官方说明 2.谓词 3.STL算法对谓词的说明 4.谓词的五种模式 5.all_of (C++ 11) 6.any_of (C++ 11) ...

  3. C++中的STL算法详解

    1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...

  4. STL算法algorithm,

    2019独角兽企业重金招聘Python工程师标准>>> STL算法部分主要由头文件<algorithm>,<numeric>,<functional&g ...

  5. STL中迭代器的作用,有指针为何还要迭代器

    请你来说一下STL中迭代器的作用,有指针为何还要迭代器 参考回答: 1.迭代器 Iterator(迭代器)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴 ...

  6. STL算法中函数对象和谓词

    算法中函数对象和谓词 函数对象和谓词定义 函数对象 谓词 一元函数对象案例 一元谓词案例 二元函数对象案例 二元谓词案例 预定义函数对象和函数适配器 使用预定义函数对象 算术函数对象 关系函数对象 逻 ...

  7. c++STL算法基础

    STL算法基础 算法概述 STL中算法分类 查找算法(13个) adjacent_find binary_search count count_if equal_range find find_end ...

  8. C++语言基础 —— STL —— 算法

    [概述] STL 是指 C++ 标准模板库,是 C++ 语言标准中的重要组成部分,其以模板类和模版函数的形式提供了各种数据结构与算法的精巧实现,如果能充分使用 STL,可以在代码空间.执行时间.编码效 ...

  9. STL 算法/容器——总论

    0. 序列式容器与关联式容器 在 STL 库中,序列式容器主要有: vector.list.deque.stack.queue.heap.priority_queue.slist 关联式容器主要有: ...

  10. STL::算法::常见算法(二)

    STL::算法::常见算法 remove_copy/remove 及其泛化版 remove_copy_if/remove_if 这两组函数提供的实现删除序列中的相关元素的思路,对我们实现自己的算法是有 ...

最新文章

  1. php微服务rpc选择,Dora RPC:PHP 的分布式 RPC,支持微服务、服务发现
  2. jmap查看内存使用情况与生成heapdump--转
  3. 《机器学习实战》chapter05 Logistic回归
  4. linux内核那些事之物理内存模型之FLATMEM(1)
  5. 创建mysql数据库快照_数据库教程
  6. 关乎Python lambda你也看得懂
  7. 什么样的老板不适合找运营?
  8. 硬盘与电线挨着会高温吗_机械硬盘时代徐徐落幕?出货量再减50万件,你还会买新机械盘吗?...
  9. 每个电商企业都应该分析的9种数据
  10. 整理编程语言列表大全,你最熟悉哪些?
  11. Wifite批量破解WEP/WPA/WPS
  12. 如何为自己的在线办公软件 ONLYOFFICE Docs 服务器的字体库添加字体
  13. win10清除系统激活密钥
  14. mysql root有初始密码_mysql的root初始密码
  15. Flume或Kafka和Elasticsearch整合
  16. 确定性知识推理方法--产生式推理
  17. foxmail7.2导入地址簿
  18. Linux下 Xpad不能移动拖动 解决办法
  19. 用计算机玩王者荣耀,王者荣耀你们用电脑玩王者荣耀顺手吗? - 游戏发言 - 酷酷跑手机游戏...
  20. 安科瑞预付费管理系统如何在高校学生公寓应用?及现场硬件如何选型?

热门文章

  1. SketchUp:SketchUp草图大师软件使用技巧总结(视图操作,绘图环境优化,缩放/镜像/对齐/桌边倒圆角案例)
  2. batch size 代码
  3. 微信小程序怎么接入多客服系统
  4. 技术人的深度工作与收益
  5. Scratch3.0连接EV3,WEDO2.0的方法视频讲解。
  6. 大顶堆小顶堆优先队列
  7. STM32F407 内部自带FLASH 模拟 EEPROM
  8. html - 好友列表 - 头像为名字最后一个字
  9. 2020CSP-J1初赛试卷
  10. MATLAB变量和数据类型