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

猜你喜欢

转载自www.cnblogs.com/foreversdf/p/12971566.html