序列容器---vector,deque,list的区别
2009-12-15 17:47
399 查看
vector<T>
1.以类似于普通数组的方式存储类型为 T 的对象,只是它的容量可以根据需要存储的对象个数进行调整。
2.使用下标运算符[]可以像数组那样访问vector容器中的元素。
3.vector容器的大小是其中元素的个数--调用size()来获得容器的大小;
vector容器的容量是当前它可以包含的最大元素个数--调用capacity()来获得容器的大小。
(在创建特定容量的vector对象时,其大小和容量是相同的)
如:std::vector<int> a(10)
(如果给vector添加一个或多个元素,其大小就会以某个比例增长,以容纳新元素,所以其容量就会大于其大小,一定不会小于其大小)
4.只添加或删除序列尾的元素时,vector是最高效的。如果增大容量,vector会自动增长。
5.可以在vector的开头和中间插入和删除元素,但其效率相当低。
(因为需要移动插入或删除点后面的所有元素,插入时还得在自由存储区中分配一个新内存空间)
deque<T>
1.deque是double-ended queue的缩写,这是其主要特性。
2.可以使用下标运算符[]像数组那样访问deque容器中的元素。
3.deque容器的大小总是等于其容量--调用size()来获取的;deque容器没有capacity()这个成员函数。
4.deque优于vector容器的方面是可以在序列开头和末尾高效地添加或删除对象。
5.deque容器使用起来比vector容器略慢。在deque序列的中间可以添加或删除元素,但过程比较慢,因为总要复制已有元素。
list<T>
1.list容器在链表中存储类型为 T 的元素。在序列中存储元素,并能在序列的中间插入或删除元素时,就应使用list容器。
2.可以在序列的任意位置高效地插入和删除元素,无需移动已有元素。
3.list容器的主要限制是随机访问元素比较慢,因为这需要从list的第一个元素或最后一个元素开始遍历整个list,查找每个元素。
4.一般的STL sort()算法不能应用于list容器,因为它需要一个提供了随机访问元素功能的迭代器。
但是,仍可以使用内置的sort()函数对list容器的内容排序。
1.以类似于普通数组的方式存储类型为 T 的对象,只是它的容量可以根据需要存储的对象个数进行调整。
2.使用下标运算符[]可以像数组那样访问vector容器中的元素。
3.vector容器的大小是其中元素的个数--调用size()来获得容器的大小;
vector容器的容量是当前它可以包含的最大元素个数--调用capacity()来获得容器的大小。
(在创建特定容量的vector对象时,其大小和容量是相同的)
如:std::vector<int> a(10)
(如果给vector添加一个或多个元素,其大小就会以某个比例增长,以容纳新元素,所以其容量就会大于其大小,一定不会小于其大小)
4.只添加或删除序列尾的元素时,vector是最高效的。如果增大容量,vector会自动增长。
5.可以在vector的开头和中间插入和删除元素,但其效率相当低。
(因为需要移动插入或删除点后面的所有元素,插入时还得在自由存储区中分配一个新内存空间)
deque<T>
1.deque是double-ended queue的缩写,这是其主要特性。
2.可以使用下标运算符[]像数组那样访问deque容器中的元素。
3.deque容器的大小总是等于其容量--调用size()来获取的;deque容器没有capacity()这个成员函数。
4.deque优于vector容器的方面是可以在序列开头和末尾高效地添加或删除对象。
5.deque容器使用起来比vector容器略慢。在deque序列的中间可以添加或删除元素,但过程比较慢,因为总要复制已有元素。
list<T>
1.list容器在链表中存储类型为 T 的元素。在序列中存储元素,并能在序列的中间插入或删除元素时,就应使用list容器。
2.可以在序列的任意位置高效地插入和删除元素,无需移动已有元素。
3.list容器的主要限制是随机访问元素比较慢,因为这需要从list的第一个元素或最后一个元素开始遍历整个list,查找每个元素。
4.一般的STL sort()算法不能应用于list容器,因为它需要一个提供了随机访问元素功能的迭代器。
但是,仍可以使用内置的sort()函数对list容器的内容排序。
相关文章推荐
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- 【转载】C++三种容器:list、vector和deque的区别
- STL序列容器 vector, list, deque的比较
- 顺序容器Vector,List,,Deque区别
- C++标准库---STL三大序列容器vector&deque&list
- C++三种容器:list、vector和deque的区别
- stl容器区别: vector list deque set map-底层实现
- 顺序容器vector、list、deque的区别
- stl容器区别: vector list deque set map-底层实现
- 顺序容器vector、list、deque的区别
- stl容器区别: vector list deque set map及底层实现
- C++ STL 提供了3个序列容器 :vector, deque, list
- STL中基本容器string、vector、list、deque、set、map之间的区别
- STL概览-序列容器vector,deque,list
- list、vector和deque容器的区别与共同点
- C++三种容器:list、vector和deque的区别
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- stl之容器区别: vector list deque set map
- C++三种容器:list、vector和deque的区别
- C++三种容器:list、vector和deque的区别