C++标准库---STL三大序列容器vector&deque&list
来源:互联网 发布:c语言开发实战 pdf 编辑:程序博客网 时间:2024/05/16 05:55
序列式容器:
其中每个元素均有固定位置---取决于插入时机和地点,和元素值无关。,元素顺序与插入时的顺序一致,和元素的值无关。
关联式容器:
元素位置取决于特定的排序准则,如果将六个元素置于这样的群集中,它们的位置取决于元素值,和插入次序无关。
下面介绍以下STL三大序列容器:
vector:支持随机存取,也就是说可以直接利用索引存取任何一个元素,在尾部加插入元素均非常快速,但是在头部或中间插入元素比较费时。因为为了保持原来的相对次序,安插点之后的所有元素都必须移动,挪出位子来。
deque:支持随机存取,可以向两端发展,即可以在头部和尾部插入数据,并且在两端插入数据的速度十分迅速,但是在中间部分安插元素则比较费时,因为必须移动其他元素。
list:双向链表,不支持随机存取,list内的每个元素都以一部分内存指示其前驱元素和后继元素。优势在于:在任何位置上执行插入或删除动作都非常迅速,因为只需要改变链接就行。这表示在list中间位置移动元素比在vector和deque快得多。
下面看示例代码:
//vector#include<iostream>#include<vector>using namespace std;int main(){vector<int> a;for(int i=1;i<=6;i++){a.push_back(i);}int len=a.size();for(int i=0;i<len;i++){cout<<a[i]<<" ";}cout<<endl;system("pause");return 0;}
运行结果:
1 2 3 4 5 6
//deque#include<iostream>#include<deque>using namespace std;int main(){deque<double> a;for(int i=1;i<=6;i++){a.push_front(i*1.1);//向前插入数据}for(int i=7;i<=9;i++){a.push_back(i*1.1);//向后插入数据}int len=a.size();for(int i=0;i<len;i++){cout<<a[i]<<" ";}cout<<endl;system("pause");return 0;}
运行结果:
6.6 5.5 4.4 3.3 2.2 1.1 7.7 8.8 9.9
//list#include<iostream>#include<list>using namespace std;int main(){list<char> a;for(char c='a';c<='z';c++){a.push_back(c);//向后插入数据}while(!a.empty()){cout<<a.front()<<" ";//输出最前面的数据a.pop_front(); //输出后删除最前面的数据 }cout<<endl;system("pause");return 0;}
运行结果:
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 0
- C++标准库---STL三大序列容器vector&deque&list
- STL概览-序列容器vector,deque,list(三)
- STL概览-序列容器vector,deque,list
- 【STL】标准库中容器对象vector list deque区别
- STL序列容器 vector, list, deque的比较
- STL序列容器vector、deque、list和array学习笔记
- 序列容器:vector,deque,list
- c++STL之顺序容器(vector、deque、list)分析
- 【C++】 STL vector list deque
- 【C++】 STL vector list deque
- [C++][stl]vector、list、deque
- 【C++】 STL vector list deque
- c++标准库顺序容器vector,deque,list
- C++ 标准模板库 容器 vector list Deque set map
- STL容器 vector,list,deque 性能比较
- STL容器 vector,list,deque 性能比较
- STL容器 vector,list,deque 性能比较
- STL顺序容器【vector】【deque】【list】
- Intent和PendingIntent的区别
- poj1573
- Android PendingIntent
- pat,1031Hello World for U
- linux RTNETLINK answers: File exists错误解决方法
- C++标准库---STL三大序列容器vector&deque&list
- 产品原型工具
- UVaLive/LA 6809 Spokes Wheel(搜索,二进制循环移位)
- Java基础回顾(5)
- Android智能机器人“小慕”的实现
- 详解之android动画interpolator插补器
- 黑马程序员_JAVA_网络编程
- ubuntu12.04克隆后没有cannot find device eth0
- 黑马程序员——java基础——多线程