标准库vector类型

105 阅读2分钟

vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库将负责管理与存储元素相关的内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中所有对象都必须是同一种类型。

使用vector之前,必须包含相应的头文件。

#include <vector>
using std::vector;

vector是一个类模板(class template)。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,我们定义保存string对象的vector,或保存int值的vector,又或是保存自定义的类类型对象的vector。

声明从类模板产生的某种类型的对象,需要提供附加信息,信息的种类取决于模板。以vector为例,必须说明vector保存何种对象的类型,通过将类型放在类模板名称后面的尖括号中来指定类型:

vector<int> ivec

vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector类型的每一种都指定了其保存元素的类型。因此,vector<int>和vector<string>都是数据类型。

  1. vector对象的定义和初始化 vector<T> v1; vector保存类型为T的对象,默认构造函数v1为空。 vector<T> v2(v1); v2是v1的一个副本。 vector<T> v3(n, i); v3包含n个值为i的元素 vector<T> v4(n); v4含有值初始化的元素的n个副本

  2. vector对象的操作

    vector标准库提供了许多类似于string对象的操作

    v.empty() 如果v为空,则返回true,否则返回false

    v.size() 返回v中元素的个数

    v.push_back(t) 在v的末尾增加一个值为t的元素

    v[n] 返回v中位置为n的元素

    v1 = v2 把v1的元素替换为v2中元素的副本

    v1 == v2 如果v1与v2相等,则返回true

    !=, <, <=, >, >= 保持这些操作符惯有的含义