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


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. 1.Power Designer 由数据库反向生成pdm文件
  2. cve-2019-11581 Atlassian Jira未授权服务端模板注入漏洞
  3. LA3942 Remember the Word(Trie+DP)
  4. python序列类型唯一的映射类型_python2.x学习笔记(8)-映射和集合类型
  5. 简化Java中的异常处理
  6. linux查看进程调用接口,查看某个程序都调用哪些api函数
  7. 我的docker随笔37:使用gitlab和jenkins实现CICD
  8. 最新Spring下载网址
  9. dll注入之SetWindowsHookEx 键盘消息钩子
  10. jquerymp3文件下载_前端实现文件下载所有方式
  11. 交互设计[1]--设计心理学
  12. win10修改用户名||user中文名改英文名
  13. 标视界:值得您信赖的商标查询网
  14. 2020年国考申论热点:治理“老剧翻拍”乱象
  15. Linux编程基础:第一章初识Linux课后习题及自我总结
  16. 你需要的代码静态检查
  17. 公司建网站多少钱?【网站多少钱】
  18. 分享!手机浏览器跳转微信一键添加微信好友的方案
  19. 阳新一中2021高考成绩查询入口,点燃激情,赢在高考----阳新一中2021届高三年级百日誓师暨励志演讲报告会...
  20. SyntaxHighlighter代码高亮框架使用方法

热门文章

  1. 【日语口语词典学习】第0001页
  2. 苹果备忘录怎么调字体大小_苹果备忘录误删了怎么恢复?你要知道这个办法
  3. es6深入浅出学习笔记
  4. 03-WIFI通讯获取Wifi名称及ip地址
  5. 未转变者自己开服务器怎么作弊,未转变者怎样显示才能才算开启作弊模式 | 手游网游页游攻略大全...
  6. 第三轮测试卷一(2020.10.29)
  7. git本地仓库 推送到远程 完整流程 及 错误解决方法
  8. IDEA编译报错“程序包XXX不存在”
  9. [书]深入分析Linux内核源代码
  10. java多行文本框显示_JavaGUI——swing組件基礎(六)多行文本框組件JTextArea