一、几种类型 1.vector,支持快速随机访问,类似数组,通过下标方式来访问,但是对中间的插入或删除访问效率比较低; 2.list,双向链表,一个是数据项,一个是链表项,支持快速插入
一、几种类型
1.vector,支持快速随机访问,类似数组,通过下标方式来访问,但是对中间的插入或删除访问效率比较低;
2.list,双向链表,一个是数据项,一个是链表项,支持快速插入或删除,因为不需要移动位置,只需要修改它里边的一个指针、一个地址就可以;
3.deque,双端队列,在两端插入或删除速度比较快,也支持随机访问,但是中间的插入或删除访问效率比较低。
二、顺序容器的适配器(在原有类的基础上给它添加更多的功能,把它适配成另外的一种特性)
1.stack,栈,后进先出
2.queue,队列,先进先出
3.priority_queue,优先级队列,按优先级先后来排列
三、顺序容器的初始化
1 #include<vector> 2 #include<list> 3 #include<deque> 4 5 //1.初始化一个空容器 6 vecctor<int> v; 7 vector<Person>v1;//Person是一个类名 8 9 list<string>l; 10 deque<Person>de; 11 12 //2.创建另外一个容器的副本 13 vector<int>v1(v); 14 list<string>l1(l); 15 deque<Person>de1(de); 16 17 //3.使用迭代器来初始化 18 vector<int>v2(v.begin(),v.end()); 19 vector<int>::iterator mid=v.begin()+2; 20 list<string>l2(v.begin(),mid); 21 22 //4.初始化指定数目的元素 23 const list<int>::size_type list_size=64; 24 list<string>slist(list_size,"hello");//slist里边保存了64个hello 25 vector<ine>vec(10);//10,元素默认为0
四、容器内元素的约束
1.元素类型必须支持赋值运算,引用类型不支持赋值运算,所以引用类型不能作为容器的元素;
2.元素类型必须可以复制,IO库类型不支持复制,所以IO库对象不能作为容器的元素。