1 #include <iostream>
 2 #include <vector>  // 头文件
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     vector<int> v;  // 定义一个动态数组 vector<T> v;
 8     
 9     // 几种初始化方式:
10     vector<int> v1(7); // v1中会含有7个元素size() == 7, 都赋值为0
11     vector<int> v2(v1);  // v2将成为v1的一个拷贝
12     vector<int> v3 = {1, 2, 3, 4, 5}; // 用列表初始化
13     vector<int> v4(v3.begin(), v3.end()); // 用迭代器初始化
14     vector<int> v5(7, 1); // 指定值初始化,v5中将有7个值为1的元素
15    
16     for (int i = 1; i <= 10; i++)
17         v.push_back(i * i);  // 插入元素到数组最后
18     v.insert(v.end(), v3.begin(), v3.end()); // 在v的最后插入v3中的所有元素
19     for (int i = 0; i < v.size(); i++)
20         cout << v[i] << " "; // 可用索引访问元素 (直接通过索引赋初值无效!)
21     cout << endl;
22     
23     
24     v.clear();  // 只是把size()设置为0, 但是实际内存并不会回收!不要想当然
25     v.shrink_to_fit(); // 再加上这句即可释放内存
26     // 老式回收内存的方法(利用了swap()和局部变量内存释放):
27     {
28         vector<int> x;
29         v.swap(x);
30     }
31     
32     // 二维动态数组
33     vector<vector<int> > v2d;
34     // 注意vector<int>后最好加一个空格再加> 否则若未开启C++11会解释为>>运算符
35     for (int i = 0; i < 5; i++)
36         v2d.push_back(vector<int>()); // vector<int>() 是调用无参构造函数
37     for (int i = 0; i < v2d.size(); i++)
38         for (int j = 0; j < 5; j++)
39             v2d[i].push_back(i * j);
40     for (int i = 0; i < v2d.size(); i++)
41         for (int j = 0; j < v2d[i].size(); j++)
42             cout << v2d[i][j] << " ";
43         cout << endl;
44     return 0;
45 }

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄