gpt4 book ai didi

c++ - 大数据的内存组织

转载 作者:行者123 更新时间:2023-11-30 01:15:08 25 4
gpt4 key购买 nike

我有一个包含 4 个整数的类。我需要创建上述类的 100 万个实例。我应该如何创建..?

天真的方法是:类 arrMyObjectes[1000000];

但是它需要100万 * sizeof(obj) = 1600万字节的连续内存块****,这将很难获得..

更好的方法是:*类 arrMyObjectes[1000000];

现在我们将使用 new 创建 1000000 个对象,并将指针存储在上述指针数组中......即使在这种情况下,我们也需要 100 万* sizeof(pointer) = 400 万字节的连续内存块.. 似乎也很难获得..

有没有其他更好的方法。

最佳答案

std::deque<Class> objects(1000000);呢?或 std::list<Class> objects(1000000); .这些容器是不连续的。

如果实现试图为这些构造函数获取一个连续的 block ,您可以单独生成它们:

std::deque<Class> objects;
for(unsigned i = 0; i < 1000000; ++i)
objects.emplace_back();

std::list 相同.

引用: std::deque std::list

关于c++ - 大数据的内存组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29080461/

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