看板 C_and_CPP 關於我們 聯絡資訊
小弟只知道可以用 remove (myvector.begin(), myvector.end(), xxx) 來刪掉myvector中存放的值是xxx者 然後再用myvector.resize ( myvector.size() - 1 )來修正size ^^^ 如果xxx只有一個的話 但如果要刪掉的xxx在myvector中有很多個,而我只是要刪其中我知道確切位置的那一個 請問這要怎麼做呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.3.39
joefaq:把該位置的值幹掉 並將後面的值往前移 O(n) 09/01 12:53
anotherday:v.erase(remove(v.begin(),v.end(),val),v.end()) 09/01 12:54
anotherday:remove並沒刪掉元素 而是將元素往容器後面放 09/01 12:54
legendmtg:知道位置直接v.erase()丟該位置的iterator進去不就好了 09/01 13:43
loveme00835:樓上秒殺 09/01 14:27
tinlans:.....用 resize 這招還真是有創意。 09/01 14:33
loveme00835:剛開始還以為是capacity的問題... 09/01 14:39
tomap41017:請問t大的意思是好還是不好啊@@" 09/01 17:27
tinlans:意思是....不好 09/01 20:18
Zoxge:謝謝大家~ 09/01 22:16
Zoxge:那如果想要一次刪好幾個位置呢? (這幾個位置是不連續的) 09/01 22:18
Zoxge:http://0rz.tw/XEbOr 這裡的說法似乎只能刪連續的位置... 09/01 22:18
Zoxge:remove+resize 那招我是看書上寫的 XD 09/01 22:18
tinlans:直接買一本 Effective STL 看比較實在。 09/01 22:21
Zoxge:那招不好用的話.. 那remove和resize好像沒其它可用之處了? 09/01 22:21
tinlans:p.177 (右下角的頁碼為準) Item 32 看看。 09/01 22:26
tinlans:Google 的第一頁就有的東西,有版權問題去怪 Google XD 09/01 22:29
loveme00835:奇怪之前怎麼鬼打牆搜不到原文的...謝謝 t 大 ^^ 09/01 22:30
tinlans:我也是剛剛才發現網路上有,還是搜尋結果第一筆。 09/01 22:31
Zoxge:喔喔 好實用的東西 感謝t大!! 09/01 22:40