1.说说vector的底层(存储)机制。
vector就是一个动态数组,里面有一个指针指向一片连续的内存空间,当空间不够装下数据的时候,会自动申请另一片更大的空间(一般是当前容量的百分之50),然后把原来的数据拷贝过去,接着释放原来的空间。
2.说说list的低层机制
以节点为单位存放数据,节点的地址在内存中不一定连续。每次插入或删除一个节点,就配置或释放一个元素空间。
3.什么情况下用vector,什么情况下用list。
vector可以随机存储元素(即可以通过公式直接计算出元素地址),适合对象简单,随机访问频繁的。
list不支持随机存储,适合频繁删除和插入,对象数量变化频繁的。
4.说说map的底层机制
map是以红黑树为底层机制。红黑树是一种平衡二叉搜索树,自动排序效果不错。
通过map不能修改其键值,只能修改其真实值。所以map迭代器既不是const也不是mutable。