gpt4 book ai didi

c++ - 在 C++ 中处理大尺寸 vector

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

我想使用大尺寸 vector 。但是这些 vector 在内存中分配了很大的空间并导致了错误..

size=10000;
//2D vector doubles
vector<vector<double>> vecA(size,vector<double>(size));
vector<vector<double>> vecB(size,vector<double>(size));
vector<vector<double>> vecC(size,vector<double>(size));

我想在程序中的所有代码中使用它们。什么是最佳解决方案?

最佳答案

首先关于你的问题:

vector<vector<double> > v;
cout<< v.max_size();

这段代码给我输出 268435455768614336404564650(针对 64 位编译时)。此外,在我的机器上它没有抛出任何编译错误,但程序挂起(即分配永远不会在 32 位中发生)。尽管在 64 位中,所有三个 vector 的分配都没有错误。所以基本上这可能是 vs12 中的错误,也可能不是错误,只是未定义的行为(因为 c++ 标准不保证有关此分配的任何内容)。现在谈谈您的解决方案:您可以使用磁盘上的数据结构,这会慢得多。有很 multimap 书馆可以为你做这件事。你可以检查 HERE 找到一个。


Similar 对比中的错误

关于c++ - 在 C++ 中处理大尺寸 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20236280/

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