我如何表示一个在c++中只存储0或1的数组[100000][100000]

how can I represent an array [100000][100000] storing only 0 or 1 in c++?

本文关键字:100000 存储 数组 c++ 表示 何表示 一个      更新时间:2023-10-16

我尝试过:

vector<int <vector> > Graph(100000, vector<int> (100000)) ;

vector<bool<vector> >Graph  (100000,vector<bool> (100000)) ; 

bool Graph [100000][100000] ;

但它们都不起作用。

创建矢量的正确方法是:

vector<vector <int> > Graph(100000, vector<int> (100000));

但是请注意,这个数组将占用10^5*10^5*4=400亿字节(假设您的int是32位)或大约40GB的RAM。当然,您必须拥有那么多的内存。

这个做得好

int wMyArray[100000][100000];

会给你这个编译时错误:error C2148: total size of array must not exceed 0x7fffffff bytes

然后使用矢量:

std::vector<std::vector<int>> wMyVector(100000, std::vector<int>(100000));
wMyVector.back().back();

加载只需要很长时间,您可以看到加载时工作字节的数量在增加。

不确定你是否真的想这么做。