首页 > 解决方案 > 一个二维向量或数组中最多可以存储多少个元素?

问题描述

我尝试将 2000*2000 元素存储在声明为的 2d 向量中 - vector < vector <int> > a ( n , vector <int> ( n , 0 )); 但是当我存储 20000*20000 元素时,它显示SIGABRT错误。我在 GeeksforGeeks IDE 中完成了所有这些工作。

那么,假设我想创建一个包含 200000*200000 个元素的矩阵,那么理想的方法是什么?

标签: c++arraysvectorsize

解决方案


根据语言规范,您可以放入 avector或 a的数据量的唯一限制vector<vector>是您可以指向多少个唯一内存地址。

但是在现实世界的应用程序中,限制始终是您可以提供多少内存的限制vector,而且大多数情况下,这将受到您的 RAM 的限制。

像 GeeksforGeeks 这样的网站可能会进一步限制它,只允许任何给定的应用程序使用少量内存,以防止用户使用不负责任的代码从本质上对他们的网站进行 DDOS 攻击。

因此,如果您确实需要保存这么多数据,您将必须至少执行以下操作之一:

  • 找到一种有效压缩数据的方法
  • 找到一种使用映射内存分配数据的方法vector
  • 找到一种无需存储 20000x20000 元素即可解决问题的方法

推荐阅读