我们今天这篇文章主要讨论了std::vector模板类的使用。
想使用vector我们需要包含头文件, 与string类一样, vector模板类也是在std命名空间内, 我们先看一下vector的几种初始化方法, 代码如下
vector的构造
以上代码展示了vector模板类的集中常见的初始化方法, 具体说明建代码注释. 其中要注意的是最后一种用法, 要注意是错误的。因为vector是个模板类:vector, 当指定类型的时候,要注意其中的元素要与指定的类型相匹配, 否则会编译不通过
但是很多时候我们虽然知道vector中有多少元素, 但是当元素个数很多的时候,利用{} 这种列表初始化就不太合适了, 那么我们怎么想vector中添加元素呢 *向vector中添加[0-9)的平方作为元素, 并遍历他们打印出来
给vector添加元素并遍历输出
打印输出的结果如下
运行结果
上面我们可以看到向vector里面添加函数,使用的是push_back方法, 那么vector具有哪些操作,让我们可以获取vector的一些性质呢, 在上面的代码基础上我们添加以下代码
结果如下
从上面我们可以发现, vector也可以通过[]下标索引器来访问其中的元素, 同std::string一样,要注意索引的大小要小于 vector.size(), 否则会在运行时出错,但是需要特别注意的是, 不能使用索引器添加元素, 下面的代码是错误的
std::vector vec
//这种用法是错误的
vec[0] = 22
同std::string类似, vector也提供了 ==, !=, = 等操作, 具体的用法如下
//仅当v1与v2元素数量相同, 且对应位置的元素值都相同的时候 v1才等于v2
v1 == v2
//这种比较是以字典的方式进行比较,这个小伙伴们可以自行下去编写代码测试一下他们的用法
=
有一点要重点强调的是, 只有vector的类型T支持以上的运算符操作,我们才可以对vector进行上述操作, 否则不能比较两个vector对象
我们总结一下, 这篇文章主要讲述了vector对象的初始化, 以及一些常用的vector操作方法, 我们下篇文章将看一下另一种访问vector元素的方法, 同时也是C++中很重要的一种访问元素方法--迭代器,明天见
领取专属 10元无门槛券
私享最新 技术干货