作者khoguan (Khoguan Phuann)
看板C_and_CPP
標題Re: [問題] map元素的刪除?
時間Fri Jul 1 10:48:03 2005
※ 引述《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)
1F:→ cplusplus:應該用第三種? 140.115.217.14 07/01
2F:→ cplusplus:如果是單純比較KEY的話 用第三種不省掉許多事 140.115.217.14 07/01
3F:→ khoguan:是的。若單純比較key值,就用第三種,直接支援。220.130.208.168 07/01