今天在做题的时候遇到了一个涉及到用vector模板创建二维数组的处理问题,之前没见过利用vector建立的二维数组,算是开了个眼。记一手小笔记:
1.初始化:
vector<vector<int>> dp(m, vector<int>(n, 0));
//在分析的时候一步步分析:
/*vector< >尖括号里放的是数组元素的类型,既然是二维数组那么第一层数组中存放的数据类型那还是一个一维数组,左边数据类型的
声明已经完成。*/
/*右边的dp表示数组的名称,m表示第一层数组的元素个数,对应到我们的二维数组中就是行数。而另外的vector<int>(n, 0)则是建立
一个有n个元素、每个元素大小为0的数组,作为第一层数组中的数据元素。*/
//整句话合起来就是建立了一个m行n列,每个元素初始化为0的二维数组。
2.获取行数与列数
int m=dp.size();//dp.size(),即第一层数组的元素个数,表示行号
int n=dp[0].size()//dp[0].size()表示dp第一层数组中的第一个元素中包含的元素个数,即为列号
//注意:这种方法适用于一般的每行每列均相等的情况