问题:unique操作完成之后不应该还是会显示全部元素嘛,为什么针对这个样例会出现"123"被替换成空行的情况,是我写bug了还是什么其他问题,望各位大佬指教(其他样例都是可以的,比如{ "ABC","ABC","AAA" },unique之后还是显示这3个)
#include<iostream>
#include<string>
#include<vector>
#include<fstream>
#include<sstream>
#include<list>
#include<forward_list>
#include<deque>
#include<queue>
#include<set>
#include<algorithm>
#include<numeric>
using namespace std;
void solve(vector<string>& str)
{
sort(str.begin(), str.end());
for (int i = 0; i < str.size(); i++)
cout << str[i] << endl;
cout << "***************\n";
vector<string>::iterator tar = unique(str.begin(), str.end());
for (int i = 0; i < str.size(); i++)
cout << str[i] << endl;
cout << "***************\n";
str.erase(tar, str.end());
for (int i = 0; i < str.size(); i++)
cout << str[i] << endl;
}
int main(int argc, char** argv)
{
vector<string>str{ "123","123" ,"456"};
solve(str);
return 0;
}