我尝试在声明为 - 的 2d 向量中存储 2000*2000 个元素 -vector < vector <int> > a ( n , vector <int> ( n , 0 ));
但是当我存储 20000*20000 个元素时,它会显示SIGABRT错误。 我在GeeksforGeeks IDE中完成了所有这些工作。
那么,假设我想创建一个包含 200000*200000 个元素的矩阵,理想的方法是什么?
根据语言规范,可以放入vector
或vector<vector>
中的数据量的唯一限制是可以指向的唯一内存地址数的限制。
但是在实际应用程序中,限制始终是您可以为vector
提供多少内存的限制,并且大多数情况下,这将受到RAM的限制。
像GeeksforGeeks这样的网站可能会进一步限制它,只允许任何给定的应用程序用掉少量内存,以防止用户使用不负责任的代码对他们的网站进行DDOS。
因此,如果您确实需要保存这么多数据,则必须至少执行以下操作之一:
- 找到一种有效压缩数据的方法
- 找到一种使用映射内存在
vector
中分配数据的方法 - 找到一种无需存储 20000x20000 元素即可解决问题的方法