栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 标准库 <algorithm> 去重函数 unique

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 标准库 <algorithm> 去重函数 unique

摘要:C++ algorithm库中的unique函数可以通过数组的初始地址和结束地址对已经排序好的数组元素进行相邻去重。

1.函数导入

 在cpp文件中,头部写入#include以包含algorithm库

2.参数说明

函数声明:

iterator unique(iterator it_1,iterator it_2);

  1. it_1:数组的起始地址。
  2. it_2:数组结束地址。
  3. 返回值是一个迭代器(类似指针,int数组直接返回int指针),它指向的是去重后容器中不重复序列的最后一个元素的下一个元素。

去重实例:

 原始数组

1 2 2 3 3 4 4 5

 去重后数组:

1 2 3 4 5 4 4 5

删除去重:
 int类型的数组,可以使用返回的指针实现删除去重操作。
 vector类型的数组,可以使用erase方法实现删除去重操作。

3.应用实例
  1. 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
  1. 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 
  1. 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 

END

2021.10.7 第一次编辑

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/304299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号