我是一名中级程序员。我正在尝试创建一个模拟程序,需要创建一个类的一百万个对象。每个对象将包含七个12x12矩阵。 (我知道这是很多记忆)。我试图使用2D矢量。但是当我运行它总是被操作系统(Ubuntu)杀死。我试图使用“新”和2D双数组(因为我读到新的将把内存放在堆上)。但这个过程总是被杀死。
我正在分配数组和对象的向量,如下所示
12x12矩阵
ObjectMatrix = new double*[matSize];
for(int i = 0; i < matSize; ++i) {
ObjectMatrix[i] = new double[matSize];
}
一个百万个对象的向量,每个对象包含7个这样的12x12矩阵
for(int i=0;i<=1E6;i++){
ObjectVector *newObj = new Object();
ObjectVector.push_back(newObj);
}
有没有办法解决这个问题并创建一个或多个对象的向量?
答案 0 :(得分:0)
您应该在一块内存中创建矩阵。
double* matrix = new double[matSize*matSize];
这样您就可以保存matSize * sizeof(double *)内存。
您应该将对象创建为数组。
Object* objects = new Object[number];
在这里你可以再次保存很多不必要的指针。