如何開很大的陣列問題

2021-10-02 12:19:45 字數 567 閱讀 5812

在做題時常發現題目要求要開很大的陣列(多則百萬甚至上億)

此時,開long long 型的陣列已經不管用了(不僅執行時間會卡爆,且本身不支援開這麼大的陣列)

此時可以想到用vector來等效替代這麼大的陣列,vectorq,q.max_size()可知向量裡可以容納1073741823個資料(親測開一億沒有問題,就是程式執行有點慢)

有時候也會遇到要開非常大(如數百萬,正常開肯定不行)的二維陣列問題,此時也可以通過在容器裡放容器來解決(vectorq),即容器巢狀。

int p=1;

vectorint>>b;

p=1;for

(int i=

1;i<=

10000

;i++

)

遍歷巢狀容器仍然使用迭代器

vectorint>>

::iterator f;

f=b.

begin()

;for

(f;f!=b.

end(

);f++

)

犯得很大的問題

錯誤 在請求是報錯bitsum在請求提交按鈕時 將按鈕誤用成submit 導致資料提交後就重新整理介面 資料還沒有被讀取到 就結束了api訪問導致的bug 報錯http請求顯示為cancel 完善後的關於讀取jd資料的service層 public list sreachpag string key...

如何求m的n次方(結果很大)

如何求出2的1024次方的準確值?可以將大數乘法進行迭代,結果儲存在陣列中。但是這樣速度極慢,這裡給出一種方法,但仍舊比python直譯器慢一些,可以繼續優化。如果將大數乘法進行迭代,那麼每次運算如果一位出現數值大於9,都需要進製,這是不必要的。源 include include include i...

如何計算c 中開陣列中佔的記憶體

引入 在比賽中一般都會有陣列的身影,但是比賽時記憶體是一定的,若是操作不當,那麼正解也會被陣列而拖累,可是如何確保自己的陣列佔的記憶體的呢?首先要知道你自己開陣列是的型別是不一樣的記憶體的 也就是說型別不一樣,記憶體計算的方法就不一樣 16位編譯器 char 1個位元組 char 即指標變數 2個位...