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

标签 c++ visual-c++ memory-management vector

我想使用大尺寸 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/

相关文章:

c++ - 对 SOME_SIGNAL_NAME 的 undefined reference

c++ - 尝试调用构造函数,收到 "no matching function call"编译错误

c++ - C2712 : Cannot use __try in functions that require object unwinding

c++ - wcsncpy_s 函数会导致缓冲区溢出吗?

javascript - Javascript 中的堆栈与堆? (超出最大调用堆栈大小)

python - python静态方法是否比实例方法消耗更少的内存

c++ - 将 COM 接口(interface)从 olb 文件导入 VC6

c++ - MSVC (10.0/11.0) 的内联命名空间仿真

visual-c++ - libgcrypt.lib中无法解析的外部符号

java - 解释琐事 : How many live collections are in a typical heap?