我想:我怎麼能代表一個數組[100000] [100000]在C++中只存儲0或1?
vector<int <vector> > Graph(100000, vector<int> (100000)) ;
和
vector<bool<vector> >Graph (100000,vector<bool> (100000)) ;
和
bool Graph [100000][100000] ;
...但他們都不工作。
我想:我怎麼能代表一個數組[100000] [100000]在C++中只存儲0或1?
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 = 40個十億字節(假設你int是32位)或大約40 GB的RAM。你將不得不有那麼多的記憶,當然。
那麼這樣
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();
只是需要永遠載入,你可以實際看到加載時增加的工作字節數量。
不知道你真的想這樣做。
不要爲C++問題添加C標籤! – Olaf
你不覺得它有點大嗎? –
這是非常具體的*,但它不工作*。你認爲我們可以猜出什麼是錯的?當你問一個問題時,爲什麼它不工作是必不可少的。因爲這也會反映出你對問題的理解程度,當你試圖做一些你還沒有做好準備的事時,情況可能就是這樣。 –