remove()將移除container中所有的指定元素,但基於不改變Contaier size的原則,remove()只是將要移除的元素搬到contaier後面,若要真正移除,還要搭配contaier.erase()。

 1}


執行結果

(原創) 如何使用remove() algorithm? (C/C++) (STL)To
(原創) 如何使用remove() algorithm? (C/C++) (STL)or
(原創) 如何使用remove() algorithm? (C/C++) (STL)not
(原創) 如何使用remove() algorithm? (C/C++) (STL)to
(原創) 如何使用remove() algorithm? (C/C++) (STL)is
(原創) 如何使用remove() algorithm? (C/C++) (STL)a
(原創) 如何使用remove() algorithm? (C/C++) (STL)question


22行到25行

(原創) 如何使用remove() algorithm? (C/C++) (STL)string s = "To be or not to be is a question";
(原創) 如何使用remove() algorithm? (C/C++) (STL)istringstream ss(s);
(原創) 如何使用remove() algorithm? (C/C++) (STL)vector
<string> svec;
(原創) 如何使用remove() algorithm? (C/C++) (STL)copy(istream_iterator
<string>(ss), istream_iterator<string>(), back_inserter(svec));


當然可以使用vector的push_back(),但我為了減少行數,使用了string -> stringstream -> vector的小技巧,將可大幅降低程式碼行數。

28行

(原創) 如何使用remove() algorithm? (C/C++) (STL)svec.erase(remove(svec.begin(),svec.end(),"be"), svec.end());


為remove()的使用方式,程式中將移除所有"be"字串,但要搭配erase()後,才能真正完整remove。

相关文章: