天天看點

<Effectives STL>筆記之在STL容器中删除元素的方法選擇

        1.要删除容器中特定值的所有對象“

如果容器是vector、string或者deque,則使用erase-remove習慣用法。

如果容器是list,則使用list::remove。

如果容器是一個标準關聯容器,則使用它的erase成員函數。

2.要删除容器中滿足特定判别式(條件)的所有對象:

如果容器是vector、string或者deque,則使用erase-remove_if習慣用法。

如果容器是list,則使用list::remove_if。

如果容器是一個标準關聯容器,則使用remove_copy_if和swap,或者寫一個循環周遊容器中的元素,記住當把疊代器傳給erase是,要對它進行字尾遞增。

3要在循環内部默寫(除了删除對象之外的)操作:

如果容器是一個标準序列容器,則寫一個循環來周遊容器中的元素,記住每次用erase時,要用它的傳回值更新疊代器。

如果容器是一個标準關聯容器,則寫一個循環來周遊容器中的元素,記住每次用erase時,要對疊代器做字尾遞增。