C 的阵列二维中的最大大小

  • 本文关键字:二维 阵列 c++11
  • 更新时间 :
  • 英文 :


我想在3和2中执行大型计算程序,大小为 array[40000][40000]或更多,此代码可以解释我的问题,我会评论矢量,因为当我运行时它也有相同的问题它是向vector的lib,如何增加编译器或删除(清洁)运行时的某些部分?

#include<iostream>
#include<cstdlib>
#include<vector>
using namespace std;
int main(){
    float array[40000][40000];
    //vector< vector<double> > array(1000,1000);    
    cout<<"bingo"<<endl;
    return 0;
}

vector的选项要好得多(并且比vector的vector 1 ),像 vector一样,使用动态分配(因此)不会溢出堆栈),但不会邀请调整大小:

std::unique_ptr<float[][40000]> array{ new float[40000][40000] };

方便地,float[40000][40000]仍然出现,使得在不熟悉不完整数组类型的程序员的情况下,这里发生了什么。


1 vector<vector<T> >非常糟糕,因为它将具有许多不同的分配,所有分配都必须单独初始化,并且所得的存储将是不合格的。vector<T>vector<T*>的组合稍好一些,后者存储的指针将一排分开成一个由前者管理的一个大型缓冲区。

相关内容

  • 没有找到相关文章