数组尽管很灵活,但使用起来还是很多不方便。为此,C++语言定义了扩展的“抽象数据类型”(Abstract Data Type, ADT),放在“标准库”中。
对数组功能进行扩展的一个标准库类型c++模板类,就是“容器”vector。顾名思义,vector“容纳”着一堆数据对象,其实就是一组类型相同的数据对象的集合。
头文件和命名空间
vector是标准库的一部分。要想使用vector,必须在程序中包含头文件,并使用std命名空间。
#include
using namespace std;
在vector头文件中,对vector这种类型做了定义;使用#include引入它之后,并指定命名空间std之后,我们就可以在代码中直接使用vector了。
vector的基本用法
vector其实是C++中的一个“类模板”,是用来创建类的“模子”。所以在使用时还必须提供具体的类型信息,也就是说,这个容器中到底要容纳什么类型的数据对象;具体的形式是在vector后面跟一个尖括号,里面填入具体类型信息。
vector v;
(1)初始化
跟数组相比,vector的初始化更加灵活方便,可以应对各种不同的需求。
// 默认初始化,不含任何元素
vector v1;
// 列表初始化
vector v2 = {'a', 'b', 'c'};
// 省略等号的列表初始化
vector v3{1,2,3,4,5};
// 只定义长度c++模板类,元素初值默认初始化,容器中有5个0
vector v4(5);
// 定义长度和初始值,容器中有5个100
vector v5(5, 100);
这里有几种不同的初始化方式:
1. 默认初始化一个vector对象,就是一个空容器,里面不含任何元素;
2. C++ 11之后可以用花括号括起来的列表,对vector做初始化;等号可以省略;这种方式是把一个列表拷贝给了vector,称为“拷贝初始化”
3. 可以用小括号表示初始化vector的长度,并且可以给所有元素指定相同的初始值;这种方式叫做“直接初始化”
(2)访问元素
vector是包含了数据对象的“容器”,在这个容器集合中,每个数据对象都会有一个编号,用来做方便快速的访问;这个编号就是“索引”(index)。同样可以用下标操作符来获取对应索引的元素,这一点跟数组非常相似。
cout
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688