使用vector创建二维数组有很多方便的地方,对比直接动态创建二维数组 http://blog.csdn.net/u011361880/article/details/77505380 发现vector真的是非常的方便,可以直接创建,重点是可以直接初始化,并且,可以初始化为非0元素。而memset只能初始化为0.
同时,vector 中的内建有内存管理,当 vector 离开它的生存期的时候,它的析构函数会把 vector 中的元素销毁,并释放它们所占用的空间,所以用 vector 一般不用显式释放 —— 不过,如果你 vector 中存放的是指针,那么当 vector 销毁时,那些指针指向的对象不会被销毁,那些内存不会被释放。
#include <iostream> #include <vector> int main(void) { int n = 3; int m = 4; std::vector<std::vector<int>> vec(n,std::vector<int>(m)); //std::vector<std::vector<int>> vec(n,std::vector<int>(m,1)) //初始化为1 也可以为其他数 for(int i=0; i<n; ++i) { for(int j=0; j<m; ++j) vec[i][j] = i+j; } for(int i=0; i<n; ++i) { for(int j=0; j<m; ++j) std::cout << vec[i][j]; std::cout<< std::endl; } return 0; }