顺序容器学习之一

来源:互联网 发布:txt免费全本小说软件 编辑:程序博客网 时间:2024/05/22 02:15
1.标准库定义三种容器:(访问元素的方式,以及添加或删除元素相关操作的运行代价)

顺序容器 vector   支持快速随机访问list支持快速插入/删除deque

双端队列


顺序容器适配器 stack后进先出(LIFO)栈queue先进先出(FIFO)队列priority_queue有优先级管理的队列

 头文件:

        #include <vector>

        #include<list>

        #include<deque>

所有的容器都是类模板。

定义某种类型的容器:

         vector<string>   sevc;

         list<int>     ilist;

         deque<Sales_item> items;

 所有容器的类型都定义了默认的构造函数,用于创建指定类型的空容器对象。默认构造函数不带参数。(大多程序中,使用默认构造函数能达到最佳运行性能,并且使容器更容易使用)

2.复制容器对象的构造函数与使用两个迭代器的构造函数之间的差别。

           复制容器对象的构造函数:将一个容器初始化为另一个容器的副本(即复制另一个容器的全部元素),类型必须匹配(容器类型和元素类型必须相同)。

                                             vector<int> ivec1;

                                             vector<int> ivec2(ivec1);

           使用两个迭代器的构造函数:将一个容器初始化为另一容器的子序列(即复制另一个容器的子序列),而且采用这种构造函数不要求两个容器是同类型的。

3.创建和初始化一个vector对象有四种方式:

  •             分配指定数目的元素,并对这些元素进行初始化:

                                                      vector<int> ivec(10);//ivec包含10个0值元素

  •             分配指定数目的元素,并将这些元素初始化为指定值:

                                                      vector<int> ivec(10,1);//ivec包含10个值为1的元素

  •             将vector对象初始化为一段元素的副本:

                                                       int ia[10]={0,1,2,3,4,5,6,7,8,9};   

                                                        vector<int> ivec(ia,ia+10);

  •              将一个vector对象初始化为另一个vecctor对象的副本:

                                                       vector<int> ivec1(10,1);

                                                       vector<int> ivec2(ivec1);


        




0 0