Для этого есть стандартный алгоритм. std::unique
удалит элементы, которые являются дубликатами предшествующих им (на самом деле, точно так же, как remove_if
, он реорганизует контейнер так, что удаляемые элементы собираются в его конце).
Пример для std::string
для простоты:
#include <string>
#include <iostream>
#include <algorithm>
int main()
{
std::string str = "11234555111333";
str.erase(std::unique(str.begin(), str.end()), str.end());
std::cout << str; // 1234513
}