创建一百万个对象,每个对象有12个双打

时间:2014-07-11 16:03:06

标签: c++ arrays vector matrix

我是一名中级程序员。我正在尝试创建一个模拟程序,需要创建一个类的一百万个对象。每个对象将包含七个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);
    }

有没有办法解决这个问题并创建一个或多个对象的向量?

1 个答案:

答案 0 :(得分:0)

您应该在一块内存中创建矩阵。

double* matrix = new double[matSize*matSize];

这样您就可以保存matSize * sizeof(double *)内存。

您应该将对象创建为数组。

Object* objects = new Object[number];

在这里你可以再次保存很多不必要的指针。