在执行实例化类 Matrice
并在其构造函数中创建它的程序时,我遇到了 Segmentation fault (core dumped)
错误。
这是我的简单代码:
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
class Matrice{
public:
std::vector<std::vector<int> > mat;
Matrice(){
for(int i=0; i < 3; ++i) {
for(int j=0; j < 2; ++j) {
mat[i][j] = rand()%(10-0)+0;
}
}
}
};
int main(){
Matrice mat1;
return 0;
}
谁能赐教。
Matrice(){
for(int i=0; i < 3; ++i) {
mat.push_back(std::vector<int>());
for(int j=0; j < 2; ++j) {
mat[i].push_back(rand()%(10-0)+0);
}
}
}
编辑:
说明: vector 需要调用 push_back
函数来将一个元素添加到 vector 的末尾,如果它超过最初为 vector 分配的大小,它将自动为 vector 重新分配空间。由于它是 vector 的 vector ,因此您首先需要推回任意 vector ,然后在存储在 mat[i] 中的每个任意 vector 处,我们push_back
所需的随机整数值。
我是一名优秀的程序员,十分优秀!