Remove adjacent duplicates: unique_copy : unique copy « STL Algorithms Modifying sequence operations « C++ Tutorial






#include <string>
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    const string hello("Hello, how are you?");

    string s(hello.begin(),hello.end());

    // iterate through all of the characters
    string::iterator pos;
    for (pos = s.begin(); pos != s.end(); ++pos) {
        cout << *pos;
    }
    cout << endl;

    /* remove adjacent duplicates
     * - unique() reorders and returns new end
     * - erase() shrinks accordingly
     */
    s.erase (unique(s.begin(), s.end()),  s.end());
    cout << "no duplicates: " << s << endl;

}
Hello, how are you?
no duplicates: Helo, how are you?








24.24.unique copy
24.24.1.Remove adjacent duplicates: unique_copy
24.24.2.Read all characters while compressing whitespaces
24.24.3.Use unique_copy to copy elements in an array to list with back_inserter
24.24.4.Copy only unique elements in a vector into another vector
24.24.5.Use unique_copy to print elements with consecutive duplicates removed
24.24.6.Use unique_copy to print elements without consecutive entries that differ by one
24.24.7.Copy standard input to standard output while compressing spaces