第十二天之二元谓词在集合中的应用

struct CompareNoCase
{
	bool operator()(const string &str1, const string &str2)
	{
		string str3;	//全部变成小写
		str3.resize(str1.size());
		transform(str1.begin(), str1.end(), str3.begin(), tolower);	//tolower是预定义函数对象

		string str4;
		str4.resize(str2.size());
		transform(str2.begin(), str2.end(), str4.begin(), tolower);	//tolower是预定义函数对象

		return (str3 < str4); //从小到大排序
	}
};

 void main06()
{
	set<string> set1;
	set1.insert("aaa");
	set1.insert("bbb");
	set1.insert("ccc");
	set<string>::iterator it = set1.find("aAa");//find函数默认情况下是区分大小写的
	if (it == set1.end())
	{
		cout << "没有查找到 aaa" << endl;
	}
	else
	{
		cout << "查找到aaa" << endl;
	}

	//使用二元谓词实现不区分大小写
	set<string, CompareNoCase> set2;
	set2.insert("bbb");
	set2.insert("aaa");
	set2.insert("ccc");
	set<string, CompareNoCase>::iterator it2 = set2.find("aAa");
	if (it2 == set2.end())
	{
		cout << "没有查找到 aAa" << endl;
	}
	else
	{
		cout << "不区分大小写的查找到aAa" << endl;
	}
}

void main()
{
	//main01();
	//main02();
	//main03();//一元函数和一元谓词
	//main04();//二元函数和二元谓词
	//main05();
	main06();//二元谓词在set集合中的应用
	system("pause");
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值