去重区间:[ first, last )
输入值:有序容器
返回值:去重以后vector中没有重复元素的下一个位置的迭代器。
执行完unique():从容器的开始到返回的迭代器位置的元素是不重复的元素,而从返回的迭代器位置到vector.end()的元素都是没有意义的(这东西就是原来排序后的东西,没变过)。
//unique讲解示例
#include<iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> v{3,4,5,1,2,5,3};
//排序
sort(v.begin(), v.end());
//1 2 3 3 4 5 5
//pos是去重以后vector中没有重复元素的下一个位置的迭代器。
vector<int>::iterator pos = unique(v.begin(), v.end());
//去重后整个容器
for (int i = 0; i < v.size(); i++)
{
cout << v[i] << ' ';
}
cout << endl;
//1 2 3 4 5 5 5
//从容器开始到pos:去重后的容器元素
for (vector<int>::iterator i = v.begin(); i < pos; i++)
{
cout << *i << ' ';
}
cout << endl;
//1 2 3 4 5
//从pos到容器结束:无意义的元素
for (vector<int>::iterator i = pos; i < v.end(); i++)
{
cout << *i << ' ';
}
cout << endl;
//5 5
return 0;
}
第一句是 去重区间:[ first, last ) 吧!
对啊 应该没写错啊
我看到是这样的
拼错了啊😫