去重函数unique(Algorithm库中)和list的成员方法unique

该篇文章展示了如何在C++中进行字符串和list元素的去重操作。通过使用sort和unique函数,可以实现对字符串中字符的去重。同时,文章还演示了如何利用remove_if函数结合自定义条件IsEven去除list中偶数元素,并讨论了list::unique与algorithm库中unique函数的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
#include<list>
#include<algorithm>
using namespace std;
/*字符串去重和容器的元素去重*/
bool IsEven(int data)
{
	return 0 == (data & 0x01);
}
void test01()
{
	string str = "aazbbbac";
	//字符串去重:排序-->unique去重(只有排序后才能达到全部去重的目的,并且返回的迭代器指向是(未删除的最后一个元素后面的元素的迭代器,即:此位置之前就是原串的不重复顺序串)
	sort(str.begin(), str.end());
	cout << str << endl;
	str.erase(unique(str.begin(), str.end()), str.end());
	cout << str << endl;
}
int main()
{
	test01();

	list<int> mylist{ 1,2,3,4,5,6,7,10,8,6,2,5,3,1,5 };

	mylist.remove_if(IsEven);

	for (auto x : mylist)
		cout << x << " ";
	cout << endl;

	mylist.sort();
	mylist.unique();//list::unique是没有返回值的,并且会修改list的长度
	//algorithm里的unique是有返回值的,并且不会修改容器的本身的属性
	for (auto x : mylist)
		cout << x << " ";
	cout << endl;
	mylist.insert(mylist.begin(),100);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值