list与vector的区别
2011-11-12 18:12
218 查看
二者主要区别在添加元素和访问元素方面:
1. vector为存储的对象分配一块连续的地址空间,和数组有点像。因此对vector中的元素随机访问效率很高。在vecotor中插入或者删除某个元素,需要将现有元素 进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。对于简单的小对象,vector的效率优于list。vector在每次扩张容量的时候,将容量扩展2倍,这样对于小对象来说,效率是很高的。
2. list中的对象是离散存储的,和链表有点像。随机访问某个元素需要遍历list。在list中插入元素,尤其是在首尾插入元素,效率很高,只需要改变元素的指针。
个人认为:
vector适用于:元素数量少,需要随机访问元素
list适用于:元素数量多,需要添加和删除元素
1. vector为存储的对象分配一块连续的地址空间,和数组有点像。因此对vector中的元素随机访问效率很高。在vecotor中插入或者删除某个元素,需要将现有元素 进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。对于简单的小对象,vector的效率优于list。vector在每次扩张容量的时候,将容量扩展2倍,这样对于小对象来说,效率是很高的。
2. list中的对象是离散存储的,和链表有点像。随机访问某个元素需要遍历list。在list中插入元素,尤其是在首尾插入元素,效率很高,只需要改变元素的指针。
个人认为:
vector适用于:元素数量少,需要随机访问元素
list适用于:元素数量多,需要添加和删除元素
相关文章推荐
- Collection集合,Map两种接口;Vector,LinkedList,ArrayList区别;
- ArrayList、LinkedList、Vector的区别
- Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法
- List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- vector list deque map 的优缺点以及区别
- 解释一下ArrayList Vector和LinkedList的实现和区别
- 序列容器---vector,deque,list的区别
- ArrayList Vector LinkedList 区别与用法
- C++学习笔记(二十)STL中vector list deque map 的优缺点以及区别
- Set,List,Map,Vector,ArrayList的区别
- Java中Vector、LinkedList和ArrayList的区别
- Arraylist,LinkedList,vector的区别
- STL容器(vector,list)--数组和链表的区别
- ArrayList,LinkedList,Vector区别
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- 温习C/C++笔记(3)——Vector和List的区别
- [转载] ArrayList Vector LinkedList 区别与用法 以及对 List,Map,Set 的解析
- list与linkedlist、arrylist、Vector、Map区别
- C++ list vector 和 数组 的区别