C++ vector 二维数组初始化方式

STL 专栏收录该内容
11 篇文章 3 订阅

原文:https://blog.csdn.net/weixin_37832275/article/details/84573267

在LeetCode刷算法的时候发现,使用vector<vector<int>> 时如果声明时不初始化,会报空指针引用错误:reference binding to null pointer of type 'value_type'。

根据《C++ primer第五版》P40:
默认初始化:

如果是内置类型的变量未被显示初始化,它的值由定义的位置决定。定义于任何函数体之外的变量被初始化为0。一种例外情况是,定义在函数体内部的内置类型变量将不被初始化。一个未被初始化的内置类型变量的值是未定义的,如果试图拷贝或者其他形式访问此类型将引发错误。

初始化方法:
int numRows=10,zone=5;//层数,每层需要的空间
vector<vector<int>> vec(numRows, vector<int>());//初始层数,赋值
for (int i = 0; i < numRows; i++) {
    vec[i].resize(zone);
}
 

  • 9
    点赞
  • 0
    评论
  • 9
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值