gpt4 book ai didi

c++ - 在 C++ 中初始化矩阵时出现段错误(核心已转储)

转载 作者:太空宇宙 更新时间:2023-11-04 15:57:42 28 4
gpt4 key购买 nike

在执行实例化类 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所需的随机整数值。

关于c++ - 在 C++ 中初始化矩阵时出现段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070962/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com