unique — removes consecutive duplicates. remove — removes by value.
std::unique:
1std::vector<int> v = {1, 1, 2, 2, 2, 3};2auto new_end = std::unique(v.begin(), v.end());3v.erase(new_end, v.end());4// v: 1, 2, 3
std::remove:
1std::vector<int> v = {1, 2, 3, 2, 4};2auto new_end = std::remove(v.begin(), v.end(), 2);3v.erase(new_end, v.end());4// v: 1, 3, 4
Erase-remove idiom:
1v.erase(std::remove(v.begin(), v.end(), value), v.end());