STL容器使用时机总结

原创 2018年04月16日 19:50:34

  vector deque list set multiset map multimap
典型内存结构 单端数组 双端数组 双向链表 二叉树 二叉树 二叉树 二叉树
支持随机存取 否        对key而言:是
元素搜索速度 非常慢 对key而言:快 对key而言:快
元素插入移除位置 尾端 头尾两端 任何位置        

vector的使用场景
比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述。
deque的使用场景
比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据,速度慢。
vector与deque的比较:
①vector.at()比deque.at()效率高,比如vector.at(0)是固定的,deque的开始位置却是不固定的。
②如果有大量释放操作的话,vector花的时间更少,这跟二者的内部实现有关。
③deque支持头部的快速插入与快速移除,这是deque的优点。
list的使用场景
比如公交车乘客的存储,随时可能有乘客下车,支持频繁的不确实位置元素的移除插入。
set的使用场景
比如对手机游戏的个人得分记录的存储,存储要求从高分到低分的顺序排列。 
map的使用场景
比如按ID号存储十万个用户,想要快速要通过ID查找对应的用户。二叉树的查找效率,这时就体现出来了。如果是vector容器,最坏的情况下可能要遍历完整个容器才能找到该用户。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38032942/article/details/79965226

STL - 各个容器的使用时机

deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据,速度慢。 vector与deque...
  • zyq522376829
  • zyq522376829
  • 2015-07-08 22:33:22
  • 903

SGI STL面试题总结

1.介绍一下STL,详细说明STL如何实现vector。 Answer: STL (标准模版库,Standard Template Library.它由容器算法迭代器组成。 STL有以下的一些优...
  • zhouweiabc
  • zhouweiabc
  • 2014-09-09 15:51:17
  • 1334

多年来,STL容器的使用总结!

第1条:慎重选择容器类型。 标准STL序列容器:vector、string、deque和list。 标准STL关联容器:set、multiset、map和multimap。 非标准序...
  • shaderdx
  • shaderdx
  • 2017-02-20 16:31:49
  • 698

C++ STL中容器的使用全面总结

一、容器的定义        在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还...
  • u014465639
  • u014465639
  • 2017-04-19 21:44:17
  • 3446

STL之顺序容器和关联容器总结

顺序容器          Vector中所采用的数据结构非常简单:线性连续空间。当分配空间被占满而仍然需要添加元素时,vector便会进行一场空间重新配置的大工程!在这里,程序员需要注意的是,一旦...
  • lhc548453346
  • lhc548453346
  • 2016-03-07 21:02:49
  • 1119

STL学习笔记— —容器array

简介array在头文件 中定义namespace std { template class array; }array是固定元素个数的容器,与相应C数组的语义相同,容器array<...
  • lyh03601
  • lyh03601
  • 2016-04-05 20:25:23
  • 1011

STL容器使用案例文档

STL 容器文档 @author 鲁伟林 之前常用的语言是: C++。现在使用的是Java,所以抽空整理下C++集合的使用方法。 gitHub地址:https://github.com/thin...
  • thinking_fioa
  • thinking_fioa
  • 2017-10-18 11:14:58
  • 6924

【C++】STL常用容器总结之三:向量vector

4、向量vectorVector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。Vector的数据安排及操作方式与array非常相似,唯一的差别在于array是静态空间,一旦配置了就不能改...
  • hero_myself
  • hero_myself
  • 2016-08-24 23:35:48
  • 1856

STL深入探究(二、容器的底层实现)

1 前言 上一篇 STL深入探究(一、空间配置器)我详细总结了SGI STL采用的空间配置机制,这一篇来总结一下stl容器的底层实现机制。 2 序列式容器 2.1 Vector Vecto...
  • fly_yr
  • fly_yr
  • 2016-08-03 11:00:56
  • 1132

C++ STL基本容器的使用

C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与...
  • conanswp
  • conanswp
  • 2014-04-09 21:01:58
  • 54966
收藏助手
不良信息举报
您举报文章:STL容器使用时机总结
举报原因:
原因补充:

(最多只允许输入30个字)