C++ 我们可以在c+中使用的二维数组的最大大小是多少+;编程?

C++ 我们可以在c+中使用的二维数组的最大大小是多少+;编程?,c++,multidimensional-array,c++14,dynamic-programming,C++,Multidimensional Array,C++14,Dynamic Programming,我试着使用10^6×10^6阵列,这给了我分段错误你需要一台至少有4 TB内存的机器。你有这么贵的电脑吗(可能要花一百万欧元,或者至少要花几十万欧元) 由于1012个4字节的数字(例如,int-s),每个需要4 TB。添加所有这些可能需要一个或几个小时(因为典型的操作需要一纳秒) 如果您有一台16GB的普通笔记本电脑,最多可以有大约40000*40000个元素的方阵,例如160000000个元素(每个元素可能需要4或8个字节;因为sizeof(long)和sizeof(double)在我的Lin

我试着使用10^6×10^6阵列,这给了我分段错误

你需要一台至少有4 TB内存的机器。你有这么贵的电脑吗(可能要花一百万欧元,或者至少要花几十万欧元)

由于1012个4字节的数字(例如,
int
-s),每个需要4 TB。添加所有这些可能需要一个或几个小时(因为典型的操作需要一纳秒)

如果您有一台16GB的普通笔记本电脑,最多可以有大约40000*40000个元素的方阵,例如160000000个元素(每个元素可能需要4或8个字节;因为
sizeof(long)
sizeof(double)
在我的Linux x86-64桌面上是8个字节)

如果矩阵的大多数元素为零,则称为a,您将使用不同的元素来表示它。有许多与之相关的资源(书籍、软件库、数学理论、编程技术、问题),您可以将自己的职业生涯奉献给稀疏矩阵


另请阅读,,…

如果阵列是使用自动存储持续时间声明的,那么大小限制非常小,大约为1Mb

如果您使用动态存储持续时间(使用
new
new[]
),则限制要高得多


但这两种方法都不足以满足您的庞大阵列(在我撰写本文时)!不过,您可能能够实例化此秩的稀疏矩阵-请参阅Boost发行版中的BLAS库。

它只取决于您计算机的内存大小以及O/s分配给进程的内存量。您可以请求o/s在您(执行)向o/s提交进程时需要多少内存。

取决于您将阵列放置在何处。如果那个地方有足够的记忆,它应该是好的,否则它不会。即使每个元素只有一个字节,整个数组的大小也是10²。您是否尝试在具有至少1000GB RAM的计算机上运行它?最大大小不取决于编程语言,而是取决于计算机、其当前负载等:执行上下文。