【发布时间】:2015-08-31 17:05:51
【问题描述】:
我有一个关于 c++ 中使用的向量的问题。我知道与数组不同,向量没有限制。我有一个包含 600 万个顶点的图,我正在使用类向量。当我试图将节点插入向量时,它会因为内存分配错误而失败。因为它在超过 200 万个节点上完美运行。我知道分配错误意味着由于我在代码中使用的指针而失败,但对我来说这似乎并非如此。我的问题是,随着矢量限制的增加,它可能由于图形的大尺寸而失败。如果是的话,我们有什么办法可以增加这个限制。
【问题讨论】:
-
使用 64 位系统和 64 位编译器,您的限制实际上会消失。当然,如果您尝试使用比系统中安装的内存更多的内存,速度会大大降低。
-
您能否向我们展示您用于向向量添加项目的代码,尤其是引发异常的部分?
-
检查
std::vector::max_size() -
@user3022426,“我知道与数组不同,向量没有限制”,因为向量是元素的连续序列,很难连续分配大量数量我会说你的知识不正确。
-
@AlanStokes 解释了为什么 1.5 倍优于 2 倍:stackoverflow.com/a/1100426/5987