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

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

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

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

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

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

你可能感兴趣的:(STL)