[問題] 關於VECTOR的上限

看板C_and_CPP作者 (daniel)時間15年前 (2011/01/06 21:38), 編輯推噓1(1016)
留言17則, 6人參與, 最新討論串1/2 (看更多)
我用STL 希望創造一個三維的VECTOR 以下是我的宣告 CUSTOMER=10000 ITEMTYPE=10000 BITARRAY=32 vector<vector<vector<int> > > CBASW (CUSTOMER, vector<vector<int> >(ITEMTYPE, vector<int>(ARRAYBITS))); 可是創造到最後出現的是 於 0x7c812afb 的 壓縮.exe 中第一個可能發生的例外狀況: Microsoft C++ 在記憶體位置 0x0012eb50,發生例外狀況: std::bad_alloc HEAP[]: Failing creating uncommitted range (7f662000 for 1000) HEAP[]: Failing creating uncommitted range (7f662000 for 1000) 這是因為VECTOR有上限嗎 如果是 還有蛇麼樣的方式可以讓我用三維的方式存放資料呢 用 CLASS ??還是說 有其他的宣告方式呢 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.26.138

01/06 21:39, , 1F
記憶體用完了= =
01/06 21:39, 1F

01/06 21:41, , 2F
可是算一下 10000*10000*32*4 =400 mb 還好吧
01/06 21:41, 2F

01/06 21:46, , 3F
奇怪 我按出來怎麼是128億bytes
01/06 21:46, 3F

01/06 21:47, , 4F
總之程式告訴你bad_alloc就是沒記憶體了= =a
01/06 21:47, 4F

01/06 21:51, , 5F
除以 32000000 不就是mb了嗎
01/06 21:51, 5F

01/06 21:51, , 6F
沒那麼大記憶體可以用,想一下怎麼丟到檔案分段讀吧 XD
01/06 21:51, 6F

01/06 21:53, , 7F
有辦法我需要才創造嗎?
01/06 21:53, 7F

01/06 21:54, , 8F
是否真有這麼大的需求全部讀進記憶體, 或者值域廣到用
01/06 21:54, 8F

01/06 21:54, , 9F
int 才能裝, 這是你先要考慮的問題, 才去撰碼
01/06 21:54, 9F

01/06 21:57, , 10F
我問個基本問題不好意思 用INT宣告很大 那我用
01/06 21:57, 10F

01/06 21:58, , 11F
UNSINGED 或是 BOOL 的話 那個可以省空間呢 謝謝
01/06 21:58, 11F

01/06 21:58, , 12F
unsinged int
01/06 21:58, 12F

01/06 21:59, , 13F
看你的用途是甚麼..宣告bool放整數那也沒用
01/06 21:59, 13F

01/06 22:00, , 14F
用 BOOL 放1 0 10 這種的呢
01/06 22:00, 14F

01/06 22:40, , 15F
數字1 0 跟 10?
01/06 22:40, 15F

01/07 00:07, , 16F
int跟unsigned int一樣大 至於bool要看實作
01/07 00:07, 16F

01/10 19:30, , 17F
vector::reserve
01/10 19:30, 17F
文章代碼(AID): #1D9SMuzp (C_and_CPP)
文章代碼(AID): #1D9SMuzp (C_and_CPP)