Elp*_*rto 26 c++ containers stl
C++标准库容器的一般用例是什么?
例如,对于配对搜索,地图通常更好.
Tom*_*icz 83
一张图片胜过千言万语.
它可以从nolyc获得,它是Freenode上## C++的信息机器人,使用命令"container choice"或"containerchoice".您收到回复的这张照片的链接位于adrinael.net,这表明我们应该感谢Freenode的## C++社区成员Adrinael.
Kir*_*rov 14
bitset - 用于存储位.通用 - 存储一些标志的值.你不需要超过1位.
deque - 双端队列 - push_back,push_front,pop_back和pop_front - 基本类'方法."未排序"(无序)容器.
list - 链表.这个容器不是内存连续的.添加和删除元素的时间是O(1),但寻找特定元素是O(n).无序容器.
map - 容器,商店对(std :: pair).第一个是关键 - 地图中的每个元素都必须使用唯一键.地图表示为树,因此在地图中搜索元素是n*log(n).此容器始终排序,这就是添加和删除元素可能会导致更多时间的原因 - 树(数据结构)是二进制和平衡的.
multimap - 与std :: map几乎相同,但允许具有相同键的对.例如,多图可以包含元素:(666,"alabala"),(666,"asdfg"),而标准的std :: map则不能.此容器也已排序.
multiset - 再次 - 与set相同,但具有可重复的元素.设置 - 好吧,这也总是排序STL容器.例如,一个集合是{1,2,3},当你尝试将"1"添加到这个集合中时,它不会被添加,因为已经存在这样的元素.(它类似于数学集合).因此,multiset允许具有相同值的多个元素,例如{1,1,1,2,3,4,4,4,4}是正确的多集,而它不是一个集合.在std :: set中添加和删除元素仍然是对数时间,因为它表示为二进制,排序和平衡树.
priority_queue - 根据一些严格的弱排序条件,它的第一个元素总是它包含的最大元素.基本功能 - push_back和pop_back.
queue - FIFO结构 - 先进先出.(或与LILO相同 - Last In - Last Out).它类似于标准队列 - 当你去商店并开始等待队列时,第一个将是第一个去的.你可以只是push_back和pop_front.无序容器.
set - 我已经在multiset部分描述了它.
stack - LIFO - Last In - First Out - 筹码.基本功能 - push_back,pop_back.无序容器.
vector - 类似于标准c ++数组.它被视为常规数组,它的内存连续,可以传递给C程序(传递第一个元素的地址).无序容器.
重要说明:我描述了基本功能,而不是整个功能.阅读CPlusPlus.com以获取更多信息.
| 归档时间: |
|
| 查看次数: |
7036 次 |
| 最近记录: |