[問題] map<t1,t2>如何有順序性?

看板C_and_CPP作者 (我愛阿蓉)時間14年前 (2011/12/06 23:43), 編輯推噓7(708)
留言15則, 10人參與, 最新討論串1/1
我以為map的insert會照順序排 按照誰先插入誰後插入 殊不知我iterator跑一輪 根本順序都不一樣了 也許他本來就不保證有順序性 但如果我需要有順序 又有key value的特性 難道要自己寫了嗎@@ 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.137.84

12/06 23:52, , 1F
自己寫個sort應該還好吧
12/06 23:52, 1F

12/07 00:04, , 2F
.......
12/07 00:04, 2F

12/07 00:05, , 3F
要sort不就完全無法使用map這結構了嗎?
12/07 00:05, 3F

12/07 00:40, , 4F
~"~
12/07 00:40, 4F

12/07 00:42, , 5F
多擺一個sorted list? 順序請存在另外一個array或list
12/07 00:42, 5F

12/07 00:59, , 6F
map原本就有內定的順序,依序key排的
12/07 00:59, 6F

12/07 00:59, , 7F
而不是按照insert的先後
12/07 00:59, 7F

12/07 01:00, , 8F
原因也很簡單,因為map底下是紅黑樹
12/07 01:00, 8F

12/07 02:33, , 9F
WPC大正解,像Java的LinkedHashMap
12/07 02:33, 9F

12/07 06:09, , 10F
如果 insert 的順序會變化
12/07 06:09, 10F

12/07 06:09, , 11F
在value 的member field 多個 size_t 如何~?
12/07 06:09, 11F

12/07 09:01, , 12F
我會用vector和map,vector 儲存順序,map 儲存value
12/07 09:01, 12F

12/07 21:14, , 13F
用vector儲存資料,用vector的index當作map的TKey?
12/07 21:14, 13F

12/07 21:23, , 14F
^(TKey)
12/07 21:23, 14F

12/08 09:06, , 15F
vector:order → elem,map:elem → key
12/08 09:06, 15F
文章代碼(AID): #1EtZWk3t (C_and_CPP)