1 /***
2 * vector 基础api复习
3 * 8 AUG 2018
4 */
5
6 #include <iostream>
7 #include <vector>
8 using namespace std;
9
10 // 打印vec向量
11 void print(vector<int> vec, int index)
12 {
13 std::cout << "vec" << index << " = ";
14 for (int i = 0; i < vec.size(); i++)
15 {
16 std::cout << vec[i];
17 }
18 std::cout << std::endl;
19 }
20
21 int main()
22 {
23 // vector初始化
24 vector<int> vec0(10, 1); // 10个1
25 vector<int> vec1(vec0.begin(), vec0.begin() + 2); // 将vec0的前两个值赋给vec1
26 vector<vector<int>> vec2(3, vector<int>(4)); // vec2二维向量,含有3个元素,每个元素含有4个int型vec向量
27
28 print(vec0, 0);
29 print(vec1, 1);
30
31 // vector基本操作
32 bool flag = vec0.empty(); // 判断vec0是否为空
33 std::cout << "flag = " << flag << std::endl;
34 vec1.clear(); // 清空vec1
35 print(vec1, 1);
36
37 // vector::insert()
38 vec0.insert(vec0.begin(), 2); // 将2插入到vec0最前面
39 print(vec0, 0);
40 vec0.insert(vec0.begin(), 3, 5); // 将5插入到vec0的index值为0-2的每个位置,长度为3
41 print(vec0, 0);
42 vec0.insert(vec0.begin(), vec1.begin(), vec1.end()); // 将vec1插入到vec0前面
43 print(vec0, 0);
44
45 // vector::erase()
46 vec0.erase(vec0.begin(), vec0.begin() + 4); // 将vec0的前4位删除
47 print(vec0, 0);
48
49 // vector::swap()
50 vec0.swap(vec1); // 将vec0与vec1交换
51 print(vec1, 1);
52
53 // vector<vector<int>>
54 vec0 = vec2[0]; // 将vec2的第0个位置的向量给vec0,这里由于是初值,故为4个0
55 print(vec0, 0);
56
57 // vector::push_back() && vector::pop_back()
58 vec1.push_back(2); // 在尾部加入一个2
59 print(vec1, 1);
60 vec1.pop_back(); // 删除最后一个数据
61 print(vec1, 1);
62
63 while (true)
64 {
65 getchar();
66 }
67 return 0;
68 }