[問題] 怎麼在多重key的map中使用insert()

看板C_and_CPP作者 (Kinder)時間10年前 (2014/03/27 18:24), 編輯推噓3(3011)
留言14則, 9人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) map 問題(Question): 因為 array 空間限制的關係 我想利用 map 建表格 宣告如下: map< pair<int, int>, method> table; 使用 table[make_pair(x, y)] = value; 這種方法在大量測資時效率非常低 想問該怎麼使用 insert 來建立多個 key 的 map? 又或者還有其他快速插入的方法? 謝謝 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.244.250 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1395915889.A.598.html

03/27 19:13, , 1F
你的資料有任何特性嗎
03/27 19:13, 1F

03/27 19:34, , 2F
特性? 噢我忘了說method是大數的class名稱
03/27 19:34, 2F

03/27 19:38, , 3F
map< key1,map<key2,val> > 這樣行嗎
03/27 19:38, 3F

03/27 19:48, , 4F
資料筆數與method大約會使用的空間?
03/27 19:48, 4F

03/27 20:00, , 5F
5000*5000*5約1.2億,array會爆
03/27 20:00, 5F

03/27 20:03, , 6F
啊= = 試試了一下maxsize,我的map才近7千萬而已
03/27 20:03, 6F

03/27 20:12, , 7F
不過這題是利用查表(dp),所以沒空間的時候
03/27 20:12, 7F

03/27 20:12, , 8F
可以刪除前面的資料
03/27 20:12, 8F

03/28 17:01, , 9F
你key等效於只有一個,效率慢因為要配記憶體和建二元樹
03/28 17:01, 9F

03/28 17:02, , 10F
map的設計就是這樣
03/28 17:02, 10F

03/31 04:09, , 11F
沒有multimap可以用?
03/31 04:09, 11F

03/31 04:33, , 12F
multimap 跟原 PO 要的不一樣吧...
03/31 04:33, 12F

04/02 22:46, , 13F
推x大的方法, 但第二個map建議用指標存
04/02 22:46, 13F

04/09 14:56, , 14F
不過1.2億...還不到1G啊。你的array是配在區域變數喔?
04/09 14:56, 14F
文章代碼(AID): #1JC_nnMO (C_and_CPP)