Kết hợp giữa std::remove và erase

      Comments Off on Kết hợp giữa std::remove và erase

Bình thường khi muốn xóa 1 phần tử khỏi 1 vector ta phải duyệt rồi xóa:


std::vector<int> arr = {15,3,6,3,8,9};
for(auto it=arr.begin();it!=arr.end();it++){
   if(*it==3)
     arr.erase(it);
}

1 số trường hợp mình muốn xóa dựa vào giá trị. Lúc đó nên kết hợp std::remove và vector::erase

#include <algorithm>

std::vector<int> arr = {15,3,6,3,8,9};
arr.erase(std::remove(arr.begin(),arr.end(),3), arr.end());