unique函数是#include<algorithm.h>中的去重函数,值得注意的是unique函数只是去除相邻的重复字符。
所以在使用之前应该使用sort函数排序一下。
去重之后也只是将去掉的重复字符放到串尾。
所以还需要erase一下串尾的应该去掉的无用字符,unique函数返回值为无用字符的begin()。
所以str.erase(unique(str.begin(), str.end()), str.end())即可。
看个小例子。
/********************** author: yomi date: 18.2.2 ps: **********************/ #include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string s1, s2; cin >> s1 >> s2; sort(s1.begin(), s1.end()); s1.erase(unique(s1.begin(), s1.end()), s1.end()); sort(s2.begin(), s2.end()); s2.erase(unique(s2.begin(), s2.end()), s2.end()); cout << s1 << endl << s2 << endl; return 0; } /* INPUT: 7_This_is_a_test_78 _hs_s_a_es_8 OUTPUT: 78T_aehist 8_aehs */