sort使用

具体使用

cpp 复制代码
bool myfunction(int i, int j) { return (i < j); }

class my_function
{
public:
	bool operator()(int i, int j) { return (i < j); }
};
int main()
{
	int array[] = { 4,1,8,5,3,7,0,9,2,6 };
	
	// 默认按照小于比较,排出来结果是升序
	std::sort(array, array + sizeof(array) / sizeof(array[0]));
	for (int i = 0; i < 10; i++)
	{
		cout << array[i];
	}
	cout << endl;
	//函数调用//myfunction表示函数的地址
	std::sort(array, array + sizeof(array) / sizeof(array[0]), myfunction);
	for (int i = 0; i < 10; i++)
	{
		cout << array[i];
	}
	cout << endl;
	//仿函数调用
	std::sort(array, array + sizeof(array) / sizeof(array[0]), my_function());
	for (int i = 0; i < 10; i++)
	{
		cout << array[i];
	}
	cout << endl;
	// 如果需要降序,需要改变元素的比较规则
	std::sort(array, array + sizeof(array) / sizeof(array[0]), greater<int>());
	for (int i = 0; i < 10; i++)
	{
		cout << array[i];
	}
	cout << endl;
	return 0;
}

myfunction表示函数地址,改模板比较函数为指针,直接传地址就能调用该函数

my_function()为仿函数的调用

相关推荐
DDDDDDDRDDR5 分钟前
C++容器:list
开发语言·c++·stl
一拳一个呆瓜7 分钟前
【MFC】对话框属性:Use System Font(使用系统字体)
c++·mfc
Elnaij10 分钟前
从C++开始的编程生活(7)——取地址运算符重载、类型转换、static成员和友元
开发语言·c++
带娃的IT创业者13 分钟前
如何开发一个教育性质的多线程密码猜测演示器
网络·python·算法
郝学胜-神的一滴28 分钟前
Effective Modern C++ 条款26:避免在通用引用上重载
开发语言·c++·程序人生
草莓熊Lotso31 分钟前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
zhong liu bin1 小时前
MySQL数据库面试题整理
数据结构·数据库·mysql
Aczone282 小时前
硬件(六)arm指令
开发语言·汇编·arm开发·嵌入式硬件·算法
逐雨~3 小时前
9.8C++作业
开发语言·c++
luckys.one6 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链