C++系列-内建函数对象


十五夜望月
唐 王建
中庭地白树栖鸦,冷露无声湿桂花。
今夜月明人尽望,不知秋思落谁家?


💢什么是内建函数对象

  • 🔥内建函数对象,也称为预定义函数对象,标准库函数对象。
  • 🔥内建函数对象,在<functional>头文件中定义的一组可用于各种算法和容器操作的对象。
  • 🔥内建函数对象主要有算术函数对象,关系函数对象,逻辑函数对象。

💢算术函数对象

算术函数对象 描述
plus 加法函数对象
minus 减法函数对象
multiplies 乘法函数对象
divides 除法函数对象
modulus 取模函数对象
negate 取反函数对象

👉 👉 👉
其中negate是一元运算的,其余都是二元运算。
注意在下面代码中transform的参数: const _InIt1 _First1, const _InIt1 _Last1, const _InIt2 _First2, _OutIt _Dest, _Fn _Func) ,前几个传递的都是迭代器。

code:
#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;

void print_vector(vector<int>& vec)
{
   
   
	for (auto i_vec : vec)
	{
   
   
		cout << i_vec << " ";
	}
	cout << endl;
}

void test01()
{
   
   
	// negate举例
	negate<int>n1;
	cout << "negate, n1(5): " << n1(5) << endl;
	cout << "negate, n1(-5): " << n1(-5) << endl;
}

void test02()
{
   
   
	// 其它举例
	vector<int> vec1{
   
   11, 22, 33, 44};
	cout << "vec1: " << endl;
	print_vector(vec1);
	vector<int> vec2{
   
   1, 2, 3, 10};
	cout << "vec2: " << endl;
	print_vector(vec2);
	vector<int> result(vec1.size()); // 创建vec1.size()个元素,并将其初始化为0
	// transform的参数: const _InIt1 _First1, const _InIt1 _Last1, const _InIt2 _First2, _OutIt _Dest, _Fn _Func) 
	transform(vec1.begin(), vec1.end(), vec2.begin(), result.begin(), plus<int>());
	cout << "plus, result:" << endl;
	print_vector(result);

	transform(vec1.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值