内建函数对象
十五夜望月
唐 王建
中庭地白树栖鸦,冷露无声湿桂花。
今夜月明人尽望,不知秋思落谁家?
💢什么是内建函数对象
- 🔥内建函数对象,也称为预定义函数对象,标准库函数对象。
- 🔥内建函数对象,在<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.

最低0.47元/天 解锁文章
2942

被折叠的 条评论
为什么被折叠?



