在STL中基本容器有: string、vector、list、deque、set、map
set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问;
set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少;
map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了;
底层采用的是树型结构,多数使用平衡二叉树(RB-Tree)实现,查找某一值是常数时间,遍历起来效果也不错,只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响。
string、vector、list、deque、set 是有序容器。
1、string
string 是basic_string<char> 的实现,在内存中是连续存放的。为了提高效率,都会有保留内存,如string s= "abcd",这时s使用的空间可能就是255,当string再次往s里面添加内容时不会再次分配内存.直到内容&