STL容器与配接器
STL容器包括顺序容器、关联容器、无序关联容器
STL配接器包括容器配接器、函数配接器
顺序容器:
- vector 行为类似于数组,但可以根据要求自动增长。 它可以随机访问、连续存储,长度也非常灵活。
- deque 容器支持在容器的起点和终点进行快速插入和删除。 它享有 vector 随机访问和长度灵活的优点,但是不具备连续性。
- list 双向链表,在容器内的任意位置启用了双向访问、快速插入和快速删除,但是你不能随机访问此容器中的元素。
- array (C++11) 和vector类似,但大小固定,array的大小不能增加或减小。
- forward_list (C++11) 单独链表,list 的向前访问版本。
关联容器:
- map 包含键/值对。 键用于对序列排序,值与该键关联。
- multimap 允许多个值使用同一个键。接口与map几乎相同,区别在于不提供operator []、插入操作总会成功。
- set 和map类似,区别在与set中不是按键/值对保存,而是值本身作为键。
- multiset set的multi版本,允许容器中同时保存多个互等的值。
无序关联容器/哈希表 (C++11):
- unordered_map
- unordered_multimap
- unordered_set
- unordered_multiset
容器配接器:
- queue 队列,FIFO
- priority_queue 优先队列
- stack 堆栈,LIFO
C++其他容器:
- 标准C风格数组
- string
- 流
- bitset
STL容器与配接器的更多相关文章
- STL——配接器(adapters)
一.配接器 <Design Patterns>一书提到23个最普及的设计模式,其中对adapter样式的定义如下:将一个class的接口转换为另一个class 的接口,使原本因接口不兼容而 ...
- 《STL源代码剖析》学习笔记系列之七、八——仿函数和配接器
1. 仿函数 仿函数又名函数对象.具有函数性质的对象.就是传入一些參数.然后对參数进行某些运算,然后返回一个值. 为了可以使行为类似函数,须要在类别定义中必须自己定义function call 运算子 ...
- STL 配接器(adapters)
定义 配接器(adapters):将一个class的接口,转换为另一个class的接口,使得原来不能一起使用相互兼容的classes,可以一起协同工作. 配接器是一种设计模式. STL中提供的各种配接 ...
- STL源码剖析:配接器
启 配接器就是适配器 STL中的适配器一共三种: 迭代器适配器 是一种观念上的改变,如将赋值操作变成插入,前进变成后退,等 函数适配器 STL中最广泛的配接器群体 可以实现连续配接 配接操作:bind ...
- STL学习笔记(迭代器配接器)
Reverse(逆向)迭代器 Reverse迭代器是一种配接器. 重新定义递增运算和递减运算.使其行为正好倒置. 如果你使用这类迭代器,算法将以逆向次序处理元素.所有标准容器都允许使用Reverse迭 ...
- <STL源码剖析>配置器
1.stl六大部件 容器:各种数据结构,包括vector,list,deque,set,map等等 算法:各种常用算法,sort,search 迭代器:容器和算法之间的粘合器 防函数:类似于函数 配接 ...
- STL容器底层数据结构的实现
C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque ...
- STL 容器简介
一.概述 STL 对定义的通用容器分三类:顺序性容器.关联式容器和容器适配器. 顺序性容器是一种各元素之间有顺序关系的线性表.元素在顺序容器中保存元素置入容器时的逻辑顺序,除非用删除或插入的操作改变这 ...
- [转]STL 容器一些底层机制
1.vector 容器 vector 的数据安排以及操作方式,与 array 非常相似.两者的唯一区别在于空间的运用的灵活性.array 是静态空间,一旦配置了就不能改变,vector 是动态数组.在 ...
随机推荐
- http://oncenote.com/2015/09/16/Security-2-HTTPS2/ (轉載)
上一篇<iOS安全系列之一:HTTPS>被CocoaChina转载,还顺便上了下头条: 打造安全的App!iOS安全系列之 HTTPS,但那篇文章只是介绍了比较偏应用的初级知识,对于想要深 ...
- Android studio插件安装
Android Studio安装插件的方式其实和Eclipse大同小异.废话不多说,直接上图: 区域1:你当前已经安装了的插件 区域2:在线安装 区域3:从硬盘安装,即针对你已经下载好了的插件,可通过 ...
- linux集群时间同步
说明:由于hadoop集群对时间要求很高,所以集群内主机要经常同步.本文档适合ubuntu.redhat系列. 注:很多内容是在网上摘录,然后试验后总结,如有疑问可留言探讨. 1.设置主机时间准确(任 ...
- 用普通IO驱动LCD的控制方法-松瀚汇编源程序
/*************************************** 本例程为IO直接驱动LCD的方法 以下是松瀚MCU汇编源程序 **************************** ...
- 写给新入IT的新人们
IT=挨踢,这是IT人的自嘲,进入IT行业是有四五年了,也算得上是一个"老人"了吧,见了不少新人,面试了不少新人,也带了一些新人,多多少少还是有点发言权的. 关于书本 新人们经常会 ...
- 去掉html标签和空格等
<?php$str = '<span style="color:#f00;">good; world</span>';echo $str.'<b ...
- pip和easy_install使用方式
easy_install 跟 pip 都是 Python 的套件管理程式,有了它們,在使用 Python 開發程式的時候會帶來不少方便. easy_install 和 pip 有什麼不一樣?據 pip ...
- ASM 图解
http://www.askmaclean.com/archives/know-oracle-asm-basic-html.html
- 使用日志服务LogHub替换Kafka
https://yq.aliyun.com/articles/35979#index_section
- careercup-C和C++ 13.9
13.9 编写支持对齐分配的malloc和free函数,分配内存时,malloc函数返回的地址必须都能被2的n次方整除. 解法: 一般来说,使用malloc,我们控制不了分配的内存会在堆里哪个位置.我 ...