前言
今天做工程时用到了 vector 类和一些 C++11的特性,之前对 vector 就不是很熟悉,今天索性梳理了一遍。
文章中的方法来自博客和官方的 API 介绍,Reference在文章末尾
一、 向量的介绍
向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版
。
向量 vector 可以存储基本数据类型、对象、结构体和指针等,但是不能存储 引用(reference)
在使用 vector 时,需要包含头文件#include
二、向量的基本操作
向量的声明和初始化
vector<int> a ; //声明一个int型向量a
vector<int> a(10) ; //声明一个初始大小为10的向量
vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量
vector<int> b(a) ; //声明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值
除此之外,还可以用数据来初始化向量
int n[] = {
2, 4, 6, 8, 10} ;
vector<int> a(n, n+5) ; //将数组n的前5个元素作为向量a的初值, n此时表示的为数组的头指针
vector<int> a(&n[1], &n[3]) ; //将数组 n 下标[1,3)范围内的元素作为向量a的初值, result = 4, 6