今天刷题发现一道动态规划题目要用到二维数组,但必须是根据参数来控制数组规模。查看博客发现这几类定义方法:
- 使用指针
int** a = new int*[rows];
for(int i = 0; i < rows; i++)
{
a[i] = new int[columns];
}
//释放空间
for(int i = 0; i < rows; i++)
{
delete []a[i];
}
1、new分配数组对象格式为:
new int[n];
//new+类型+[] 且未初始化new int[n]();
//初始化为0
2、new之后一定要delete
delete p;
//删除对象delete []p;
//删除数组
- 使用vector
vector<vector<int>> b(rows, vector<int>(columns));
vector<vector<int>> b2(rows);
for(int i = 0; i < rows; i++)
{
b2[i].resize(columns);
}
- 使用malloc
int** c = (int**)malloc(sizeof(int)*rows);
for(int i = 0; i < columns; i++)
{
c[i] = new int[columns];
}
- 特殊
今天刷题看到一种这样的定义:
bool dp[m][n] = {0};
竟然也是可以用的
总结
1.vector创建数组在定义后面加()补充数组的size
2.new和创建二维数组需两步且都需定义**a
3.注意区分**a,(*a)等区别
原文链接: https://www.cnblogs.com/leflew/p/12430141.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/194026
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!