摘要:C++ algorithm库中的unique函数可以通过数组的初始地址和结束地址对已经排序好的数组元素进行相邻去重。
1.函数导入在cpp文件中,头部写入#include以包含algorithm库
2.参数说明函数声明:
iterator unique(iterator it_1,iterator it_2);
- it_1:数组的起始地址。
- it_2:数组结束地址。
- 返回值是一个迭代器(类似指针,int数组直接返回int指针),它指向的是去重后容器中不重复序列的最后一个元素的下一个元素。
去重实例:
原始数组
1 2 2 3 3 4 4 5
去重后数组:
1 2 3 4 5 4 4 5
删除去重:
int类型的数组,可以使用返回的指针实现删除去重操作。
vector类型的数组,可以使用erase方法实现删除去重操作。
- int数组相邻去重
#include#include using namespace std; int main() { int nums[] = { 1,2,2,3,3,4,4,4,5 }; unique(nums, nums+9); // 去重 for (int num : nums) { cout << num << ' '; } cout << endl; }
输出结果:
1 2 3 4 5 4 4 4 5
- int数组删除去重
#include#include using namespace std; int main() { int nums[] = { 1,2,2,3,3,4,4,4,5 }; int* end = unique(nums, nums + 9); // 去重 int* p= nums; while(p!=end) { cout << *p << ' '; p++; } cout << endl; }
输出结果:
1 2 3 4 5
- vector数组删除去重
#include#include #include using namespace std; int main() { vector nums = { 1,2,2,3,3,4,4,4,5 }; vector ::iterator end = unique(nums.begin(), nums.end()); // 去重 nums.erase(end, nums.end()); // 删除多余的元素 for (int num : nums) { cout << num << ' '; } cout << endl; }
输出结果:
1 2 3 4 5
2021.10.7 第一次编辑



