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






Remove adjacent duplicates: unique_copy

 
 

#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?

 */        
  








Related examples in the same category

1.Read all characters while compressing whitespaces
2.Use unique_copy to copy elements in an array to list with back_inserter
3.Copy only unique elements in a vector into another vector
4.Use unique_copy to print elements with consecutive duplicates removed
5.Use unique_copy to print elements without consecutive entries that differ by one
6.Copy standard input to standard output while compressing spaces