如何表示在c ++中仅存储0或1的数组[100000] [100000]?

时间:2015-11-27 15:48:01

标签: c++ vector boolean

我试过了:

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

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

bool Graph [100000][100000] ;

......但他们都没有工作。

2 个答案:

答案 0 :(得分:2)

创建矢量矢量的正确方法是:

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

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

答案 1 :(得分:1)

做得好

int wMyArray[100000][100000];

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

然后用vector执行:

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

wMyVector.back().back();

只需要永远加载,您实际上可以看到加载时工作字节数量的增加。

不确定你真的想这样做。