动态数组 - 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的主要内容,如果未能解决你的问题,请参考以下文章