创建一百万个对象,每个对象有12个double
Creating a million objects with 12 doubles each
我是一个中级程序员。我正在尝试创建一个模拟程序,需要创建一个类的一百万个对象。每个对象将包含7个12x12矩阵。(我知道这是很大的内存)。我试着用二维向量。但是当我运行时,它总是被操作系统(Ubuntu)杀死。我尝试使用"new"和2D双数组(因为我读到new将把内存放在堆上)。但是进程总是被终止。
我分配数组和对象的向量如下
12 x12矩阵
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或更多的百万对象?
您应该在一块内存中创建您的矩阵。
double* matrix = new double[matSize*matSize];
这样就节省了matSize*sizeof(double*)的内存。
你应该创建你的对象作为一个数组。
Object* objects = new Object[number];
这里可以再次保存很多不必要的指针
相关文章:
- 如何返回一个类的两个对象相加的结果
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 从多个源构造一个对象,包括一个对象向量
- 如何在C++中从文件中读取/写入多个对象
- 最多获取2个对象
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 无法使用VAO和EBO(openGL)绘制多个对象
- 如何返回多个矢量对象的平均值?C++
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 为什么带有 vptr 的对象长 12 个字节?
- 需要帮助从12个字节生成新的24字节RGB查找阵列,或者是一种更好的编码方法
- 我有 12 个 CPU,1 个插槽,每个插槽 6 个内核,每个内核 2 个线程 - 这些信息如何对应于 MPI 和 Op
- 12个元素的数组 - 查找计数实践
- 给定一组 12 个整数,如何递归生成所有可能的 4 组 3 个整数?C++
- 为什么__int64在结构中占用12个字节
- 生成错误:12 个重载中没有一个可以转换所有参数类型
- 为什么在visual studio中连续的int数据类型变量位于12个字节的偏移
- 创建一百万个对象,每个对象有12个double