大多数stl容器都有size()和empty()函数
vector
倍增思想
操作系统有这样一个特性:申请空间所用的时间与申请空间的大小无关,与申请的次数有关。申请一次a[1000]要比申请1000次a[1]快1000倍。于是vector作为变长数组,采用的方法是:假如当前vector的容量为n,当申请的空间变大时,新创造一个2n的vector,然后把当前vector的元素copy过去。
vector有一个黑科技:比较。比较按字典序规则来。
pair
pair适用于存储两种不同类型的变量,比如一个是int,一个是string
pair的比较也是基于字典序
pair可以套娃,这样就能存多个变量
queue
它没有clear()函数
priority_queue
优先队列,本质就是堆,默认大根堆
set,map,multiset,multimap
有序
unordered_set, unordered_map, unordered_multiset, unordered_multimap
无序
bitset
压缩空间