gpt4 book ai didi

c++ - 声明一个非常大的整数 vector ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:08 26 4
gpt4 key购买 nike

有没有一种方法可以在 C++ 中执行此操作而不会在运行时崩溃?

现在我宣布

vector<vector<int> > myvec(veclength);

我怎样才能(正确地)将速度调到尽可能高的水平?即使在 10^7 时,当我应该有足够的计算机内存时它也会崩溃。

最佳答案

这应该占用大约 250 MiB 的空间1(或更少,取决于架构)所以内存绝对不是这里的问题,max_size 也不应该,其数量级为 1017(≈ 2648+8+8)。

我应该提到,我通过查看 GCC 的 libstdc++ 和 LLVM 的 libc++ 中 std::vector 的实现,并通过在实时系统上进行测试,证实了这些计算。计算值与实际实现的比例为 1:1,并且 OP 的代码与 veclength = 10e7 完美配合。

因此我得出结论,真正的原因在别处。


1) 通过用三个 64 位整数来近似每个 vector 的大小来计算,分别表示开始指针、大小和容量,并假设空 vector 的默认容量为 0。实际实现可能会有所不同,但可能相差不大。

关于c++ - 声明一个非常大的整数 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10267915/

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