std::remove_if和std::remove用法總結


函數原型:

  • remove(first, last, val) 刪除first到last之間所有值為val的元素
  • remove_if(first, last, pred) 從first到last中將滿足條件pred的元素刪除

remove本身時std::list的成員函數可以直接使用,對於std::vector它不是成員函數需要借助erase來使用。

    std::vector<char> str_ {'P', 'A', 'J', 'D', 'F'};//簡單來說就是把'P'移到最后然后通過erase刪除
    str_.erase(remove(str_.begin(), str_.end(), 'P'), str_.end());
    str_.erase(remove_if(str_.begin(), str_.end(), [](char c) {return c == 'A'; }), str_.end());

    for (auto &i : str_) {
        std::cout << i << std::endl;
    }

【輸出】J D F

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM