Re: [問題] map元素的刪除?

看板C_and_CPP (C/C++)作者 (Khoguan Phuann)時間19年前 (2005/07/01 10:36), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/5 (看更多)
※ 引述《renderer (rendering)》之銘言: : 那那那 這個問題的標準寫法是什麼呢 : 把要 erase 的 keys 存到 vector : 然後 iterate 這個 vector 把 map 裏的 pair erase 掉嗎 ??? 所謂「標準寫法」其實和原po寫的差不多,只是沒有另外設一個 暫時變數來存下一個 iterator 的值,而是用 postfix ++ 來做。 if (/* 符合條件 */) child.erase(i++); else ++i; 這樣,照說原po的寫法應該也行才對,就用他的程式,加頭加尾 寫了個完整的小程式測驗,是可以正確執行的。已用推文請他詳 述他所說的 ++tmp_q1; 執行時會出錯到底是出什麼錯?錯誤訊息 為何? 很多人都不曉得要詳列這些該列的資訊,增加有心協助的眾人的 困擾,無法對症下藥。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: khoguan 來自: 220.130.208.168 (07/01 10:57)

140.115.217.14 07/01, , 1F
應該用第三種?
140.115.217.14 07/01, 1F

140.115.217.14 07/01, , 2F
如果是單純比較KEY的話 用第三種不省掉許多事
140.115.217.14 07/01, 2F

220.130.208.168 07/01, , 3F
是的。若單純比較key值,就用第三種,直接支援。
220.130.208.168 07/01, 3F
文章代碼(AID): #12nAmWzt (C_and_CPP)
文章代碼(AID): #12nAmWzt (C_and_CPP)