区别:
1、vector底层是连续结构;list底层是非连续结构
2、vector支持随机访问;list不支持随机访问
3、vector迭代器是原生指针;list迭代器是封装结点的一个类
4、vector在插入和删除时可能会导致迭代器失效;list在删除的时候会导致当前迭代器指向的结点失效
5、vector不容易造成内存碎片,空间利用率高;list容易造成内存碎片,空间利用率低
6、vector在非尾插,删除的时间复杂度为O(n),list在任何地方插入和删除的时间复杂度都为O(1)
使用场景:
vecotr需要高效存储,支持随机访问,不关心插入删除效率;list大量插入和删除操作,不关心随机访问