《c++ primer》3.3 vector 类型小结

1. 头文件

#include<vector>
using std::vector;

2. 声明

vector是一个类模板,vector中的元素是什么类型,需要在<>内说明:

vector<int> ivec;
vector<Sales_item> Sales_vec;
vector<vector<string>> file; // 元素为vector, 所以是一个string元素的矩阵

但元素不能是别名(reference)

3. 初始化

vector<int> ivec;
vector<int> ivec2(ivec);
vector<int> ivec3 = ivec;
vector<string> articles = {"a", "an", "the"};
vector<int> ivec(10,-1); // 10个元素,每个都是-1
vector<int> ivec(10); // 10个元素,值都是0。如果不是int而是其他class,没有默认初始值,则无法这样定义

为了更包容,他们还允许定义成 vector<string> v8{10, "hi"},但我们只需要记住并使用上面的定义&初始化方式。

4. 追加元素

vector有一个成员函数 push_back,可以在列表最末尾添加元素

vector<int> v2;
for(int i=0;i<100;i++)
    v2.push_back(i);

vector可以有效地增加长度,一般比确定长度还要有效。

range for 的循环体不能改变 range for 条件语句中的 size

5. size_type

类似于string中关于size_type的说明,而且使用的时候必须带上成员类型

vector<int>::size_type // ok
vector::size_type //错误

6. vector 操作

v.empty() // true if v is empty; false else.
v.size()  
v.push_back(t)
v[n]
v1=v2
v1={a,b,c,...}
v1==v2
v1!=v2
<,<=,>,>=  //仅当成员类型定义了<,<=,>,>=时可以使用
原文地址:https://www.cnblogs.com/luyi07/p/11633338.html