c++ - 一个二维向量或数组中最多可以存储多少个元素?
问题描述
我尝试将 2000*2000 元素存储在声明为的 2d 向量中 -
vector < vector <int> > a ( n , vector <int> ( n , 0 ));
但是当我存储 20000*20000 元素时,它显示SIGABRT错误。我在 GeeksforGeeks IDE 中完成了所有这些工作。
那么,假设我想创建一个包含 200000*200000 个元素的矩阵,那么理想的方法是什么?
解决方案
根据语言规范,您可以放入 avector
或 a的数据量的唯一限制vector<vector>
是您可以指向多少个唯一内存地址。
但是在现实世界的应用程序中,限制始终是您可以提供多少内存的限制vector
,而且大多数情况下,这将受到您的 RAM 的限制。
像 GeeksforGeeks 这样的网站可能会进一步限制它,只允许任何给定的应用程序使用少量内存,以防止用户使用不负责任的代码从本质上对他们的网站进行 DDOS 攻击。
因此,如果您确实需要保存这么多数据,您将必须至少执行以下操作之一:
- 找到一种有效压缩数据的方法
- 找到一种使用映射内存分配数据的方法
vector
- 找到一种无需存储 20000x20000 元素即可解决问题的方法
推荐阅读
- swift - 如何根据iOS版本在一个应用程序中添加两个应用程序?
- r - 在 R Jags 中模拟 Pareto 分布(贝叶斯)
- javascript - 检查 JavaScript 对象中的多个键?
- angular - 无法在angular7中查看html中的数据
- entity-framework - Automapper:映射多对多
- erlang - 为 file:get_cwd() 获取 {error, enoent} 的常见原因是什么?
- python-3.x - 在列中出现两行
- angular - 默认情况下选中单选按钮,它们不应该被选中
- android - 我想找到用户的行程详细信息(行程起点、终点、速度、硬中断、电话使用情况、事故)。(安卓开发)
- django - 带有mongoengine的django rest框架中不区分大小写的排序