C++标准库vector类型学习笔记
时间:2011-04-25 来源:Crazyant_
vector是一个标准库中的容器,使用时需要包含#include <vector>头文件。
vector是一个类模板而不是一种数据类型,对它的定义,需要指定类型。
1、vector对象的定义和初始化
vector类定义了好几种构造函数,并且与string类型相类似,如下所示:
操作调用方式 |
操作说明 |
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个副本 |
注:对C++的容器来说,动态添加元素的效率,要比直接静态初始化元素的效率高
2、vector对象的操作
vector标准库提供了许多类似于string对象的操作,如下所示是一部分:
操作调用方式 |
操作说明 |
v.empty() |
判断v是否为空 |
v.size() |
返回v中元素的个数 |
v.push_back(t) |
向v的末尾添加一个元素 |
V[n] |
返回v中位置为n的元素 |
V1 = v2 |
把v1中元素替换为v2中元素副本 |
V1==v2 |
判断是否相等 |
!=, <, <=, >, >= |
直接用于vector对象的相互比较 |
注,以下是一些需要注意的地方
Ø vector和string一样,长度、下标等类型是size_type,但是vector获取size_type时,需要指定类型,如vector<int>::size_type这样的方式
Ø vector的下标操作,例如v[i],只能用于操作已经存在的元素,可以进行覆盖、获取等,但是不能通过v[i++]这种方式来给一个vector容器添加元素,该功能需要用push_back操作完成,下标不具备该功能
Ø C++程序员习惯优先使用!=而不是<来编写循环判断条件