C++【vector】用法和例子

糖醋麻辣蝦發表於2018-08-08
 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 }

 

相關文章