vector适用:对象数量变化少,简单对象,随机访问元素频繁
list适用:对象数量变化大,对象复杂,插入和删除频繁
最大的区别是,list是双向的,而vector是单向的。
vector 为存储的对象分配一块连续的地址空间,因此对vector中的元素随机访问效率很高。
在vecotor中插入或者删除某个元素,需要将现有元素进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大。
对于简单的小对象,vector的效率优于list。
list中的对象是离散存储的,随机访问某个元素需要遍历list。在list中插入元素,尤其是在首尾插入元素,插、删效率很高,只需要改变元素的指针。适用对象数量变化频繁的。