STL unique函数

STL unique函数算法

STL 中的 unique() 算法可以可以在序列中原地移除重复的元素,这就要求被处理的序列必须是正向迭代器所指定的。

在移除重复元素后,它会返回一个正向迭代器作为新序列的结束迭代器。可以提供一个函数对象作为可选的第三个参数,这个参数会定义一个用来代替 == 比较元素的方法。

STL unique函数详解

头文件

#include <algorithm>

语法

iterator unique(iterator it_1,iterator it_2); iterator unique(iterator it_1,iterator it_2,bool MyFunc);

参数

参数 描述
it_1 输入迭代器
it_2 输入迭代器
MyFunc 比较规则

案例

STL unique函数

使用 STL unique 函数去除集合重复元素

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { std::cout << "嗨客网(www.haicoder.net)\n" << std::endl; vector<int> a = {1,3,3,4,5,6,6,7}; vector<int>::iterator it_1 = a.begin(); vector<int>::iterator it_2 = a.end(); vector<int>::iterator new_end; new_end = unique(it_1,it_2); a.erase(new_end,it_2); cout<<"删除重复元素后的 a : "; for(int i = 0 ; i < a.size(); i++) { cout << a[i] << " "; } cout<<endl; return 0; }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ unique.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

42_STL unique函数.png

我们使用了 unique 函数,实现了去除集合中的重复元素。

STL unique函数总结

STL 中的 unique() 算法可以可以在序列中原地移除重复的元素,这就要求被处理的序列必须是正向迭代器所指定的。