[問題] hash_map有辦法給予預設值嗎?

看板C_and_CPP (C/C++)作者 (蘇打)時間16年前 (2009/05/19 11:58), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
我想使用hash_map增加速度 有一個小疑問 當某一個key不存在hash_map時 他的預設值為0 hash_map<string, float> test; cout<<test["abc"]<<endl; //abc字串不存在,輸出為0 請問有辦法指定他不存在的預設值嗎? 我想到的一種作法是 it = test.find("abc"); if( it != test.end() ) cout<<test["abc"]<<endl; else cout<<"-1"<<endl; 先測試該key是否存在,若存在直接輸出 若不存在則強制輸出為-1... 不知道有沒有其他作法呢? 感謝:) -- thePainter. ◣◢ ◤ ◣ http://www.wretch.cc/blog/myelf ◢ ◤ ◤ ◤ Wretch@BBS -> P_myelf thePainter. φthePainter. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.145.212

05/19 14:16, , 1F
我用 Google 的 SparseHash 可以做得到
05/19 14:16, 1F


05/19 14:23, , 3F
第二個方法會比較好,第一個方法會增加一組mapping
05/19 14:23, 3F

05/19 14:36, , 4F
問題可轉成 為什麼float()是0.0
05/19 14:36, 4F
文章代碼(AID): #1A4YvTiO (C_and_CPP)
文章代碼(AID): #1A4YvTiO (C_and_CPP)