我想使用大尺寸 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();
这段代码给我输出 268435455
和 768614336404564650
(针对 64 位编译时)。此外,在我的机器上它没有抛出任何编译错误,但程序挂起(即分配永远不会在 32 位中发生)。尽管在 64 位中,所有三个 vector 的分配都没有错误。所以基本上这可能是 vs12 中的错误,也可能不是错误,只是未定义的行为(因为 c++ 标准不保证有关此分配的任何内容)。
Similar 对比中的错误
关于c++ - 在 C++ 中处理大尺寸 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20236280/