我有一个可以容纳4个整数的类。我需要创建上述类的100万个实例。我应该如何创建..?
天真的方法是:
类arrMyObjectes [1000000];
但是它需要一百万* sizeof(obj)= 1600万字节的连续内存块****,这将很难获得。.
更好的方法是:
*类别arrMyObjectes [1000000];
现在我们将使用和新的创建1000000个对象,并将指针存储在上述指针数组中……即使在这种情况下,我们也需要1,000,000 * sizeof(pointer)= 400万字节的连续内存块。很难得到..
还有其他更好的方法吗?
最佳答案
那std::deque<Class> objects(1000000);
或std::list<Class> objects(1000000);
呢?这些容器是不连续的。
如果实现尝试为那些构造函数获取一个连续的块,则可以单独生成它们:
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/