1: //unique1a.cpp
3: #include <iostream>
4: #include <vector>
5: #include <algorithm>
6: using namespace std;
9: int main()
10: {
11: cout << "\nThis program illustrates the use of the STL unique() "
12: "algorithm\n(default version) to remove adjacent duplicate "
13: "copies of integer\nvalues from a vector of integers.";
14: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
16: int a1[] = {1, 2, 2, 3, 3, 6, 5, 2, 6, 9, 12, 2, 2, 2, 9, 10, 11, 12};
17: vector<int> v1(a1, a1+18);
18: cout << "\nHere are the values in the first vector:\n";
19: for (vector<int>::size_type i=0; i<v1.size(); i++)
20: cout << v1.at(i) << " ";;
21: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
23: cout << "\nNow we remove all adjacent duplicate copies of the "
24: "\nvalues 2 and 3 and redisplay the values to confirm:\n";
25: vector<int>::iterator new_end = unique(v1.begin(), v1.end());
26: vector<int>::iterator p = v1.begin();
27: while (p != new_end) cout << *p++ << " ";
28: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
30: int a2[] = {1, 1, 2, 2, 2, 3, 4, 5, 5, 5, 6, 7, 7, 8, 9, 10, 10, 10};
31: vector<int> v2(a2, a2+18);
32: cout << "\nHere are the values in the second vector:\n";
33: for (vector<int>::size_type i=0; i<v2.size(); i++)
34: cout << v2.at(i) << " ";;
35: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
37: cout << "\nNow we remove all adjacent duplicate copies of any "
38: "\nof the values and redisplay the values to confirm:\n";
39: new_end = unique(v2.begin(), v2.end());
40: p = v2.begin();
41: while (p != new_end) cout << *p++ << " ";
42: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
43: }