list | vector |
底层结构是带头节点的双向循环链表 | 底层结构是动态顺序表 |
在任意位置插入和删除的效率高,时间复杂度为O(1) | 在任意位置插入和删除效率低,插入有可能会增容,会导致开辟新空间,拷贝元素释放旧空间使效率更低 |
不支持随机访问 | 支持随机访问 |
迭代器失效:插入元素不会导致迭代器失效,删除时只会导致当前迭代器失效,其他迭代器不受影响,重新赋值当前迭代器即可。 | 迭代器失效:在插入元素可能会扩容导致原有迭代器失效所有迭代器需要重新赋值,删除时当前迭代器会失效需要重新赋值。 |
有大量插入和删除操作,不关心随机访问使用list | 需要高效存储,支持随机访问,不关心插入删除效率时使用 vector |
List与vector的区别(表格对比)
最新推荐文章于 2024-07-22 19:36:52 发布