动态数组 - vector

Posted antonliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态数组 - vector相关的知识,希望对你有一定的参考价值。

 

 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 }

 

以上是关于动态数组 - vector的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中Vector怎样存放一个动态的二维数组

有没有办法使用相同的布局动态创建片段并向它们显示数据?

在android中动态创建选项卡并使用传入的参数加载片段

动态数组vector

动态数组 - vector

动态数组向量vector