标准模板库 STL 使用之 —— vector 使用 tricks

1. 从已有 vector(或数组)中复制

vector<int> a{....};
int an = a.size();
int half = an/2;
vector<int> a0(a.begin(), a.begin()+half);
vector<int> a1(a.begin()+half, a.end());

2. 一维向量 ⇒ 不定长二维向量

我们并不死板地定义vector<vector<int>>这样的对象,

vector<int> v[10];

v[0].clear();
v[0].push_back(1); v[0].push_back(2);

v[1].clear();
v[1].push_back(10); v[1].push_back(11); v[1].push_back(12);

3. 倒数第一、倒数第二

vector<int> path[10];
int d = path[path.size() - 1];        // 倒数第一
int c = path[path.size() - 2];        // 倒数第二
int b = path[path.size() - 3];        // 倒数第三
int a = path[path.size() - 4];        // 倒数第四;

当然也可采用指针(迭代器)的方式:

int d = *(path.end()-1);
int c = *(path.end()-2);
int b = *(path.end()-3);
int a = *(path.end()-4);
原文地址:https://www.cnblogs.com/mtcnn/p/9423884.html