C++容器中列表list和向量vector区别

关于容器:
容器是可以用于存放各种类型的数据的数据结构
如 vector<int> v1;
C++标准模板库(STL)提供三类容器:
(1)顺序容器,如vector,list,deque(双端队列)等
(2)关联容器,如set(集合),multiset(多重集合),map(映射),multimap(多重映射)等
(3)容器适配器,如stack(栈),queue(队列),priority_queue(优先级队列)等
 
 
list(列表)和vector(向量)的区别
(1)、向量为一个动态的数组(单向),列表是由双向链表组成的(双向)
(2)、vector为存储的对象分配一块连续的地址空间,随机访问效率很高。但是插入和删除需要移动数据,故效率较低
(3)、list存储空间是不连续的,随机访问需要遍历整个链表,因此效率比vector低。但是在list插入元素,尤其是首尾插入,效率很高,只要改变元素的指针。
(4)、vector中迭代器iterator使用后就释放,而list的迭代器在使用后还可以继续使用。
(5)、list比vector占用的内存多。
 
使用原则:
(1)如果需要高效的随机存取,而不在乎插入和删除的效率,使用vector;
(2)如果需要大量高效的插入删除,而不在于存取时间,则使用list

猜你喜欢

转载自blog.csdn.net/feiyang5260/article/details/88045388