泛型编程 - 用模板参数指定策略

本文通过C++标准库函数sort()展示了如何使用模板参数来指定排序规则,包括使用比较器实现升序、降序及自定义排序逻辑。
模板参数指定策略
示例:标准库函数 sort()

使用第二个模板参数 ( 比较器 ) 来指定比较的规则(如:降序或升序排列)

#include <iostream>
#include <algorithm>
using namespace std;

void print(int* ar, size_t len) {
	for (size_t i = 0; i < len; ++i)
		cout << ar[i] << ' ';
	cout << '\n';
}

bool absGreater(int x, int y) {
	return abs(x) > abs(y);   abs是求绝对值
}

int main() {
	int ar[] = { 123, -23, 4, -56, 78, 12 };
	const size_t N = sizeof(ar) / sizeof(*ar);

	sort(ar, ar + N, less<int>());    升序排列
	sort(ar, ar + N, greater<int>()); //降序排列
	sort(ar, ar + N, absGreater);
	print(ar, N);
	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值