// C++ 仿函数示例代码
#include <iostream>
#include <vector>
#include <algorithm>
// 定义一个仿函数,用于计算平方
struct Square {
int operator()(int x) const {
return x * x;
}
};
// 定义一个仿函数,用于判断一个数是否为偶数
struct IsEven {
bool operator()(int x) const {
return x % 2 == 0;
}
};
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 使用仿函数计算平方
std::vector<int> squares;
std::transform(numbers.begin(), numbers.end(), std::back_inserter(squares), Square());
std::cout << "Squares: ";
for (int num : squares) {
std::cout << num << " ";
}
std::cout << std::endl;
// 使用仿函数筛选偶数
std::vector<int> evens;
std::copy_if(numbers.begin(), numbers.end(), std::back_inserter(evens), IsEven());
std::cout << "Evens: ";
for (int num : evens) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
Square 仿函数:
Square 是一个结构体,重载了 operator(),使其可以像函数一样调用。operator() 接受一个整数参数 x,返回其平方。IsEven 仿函数:
IsEven 也是一个结构体,重载了 operator(),用于判断一个整数是否为偶数。x % 2 == 0,则返回 true,否则返回 false。main 函数:
numbers,包含从 1 到 10 的整数。std::transform 和 Square 仿函数计算每个元素的平方,并将结果存储在 squares 向量中。std::copy_if 和 IsEven 仿函数筛选出所有偶数,并将结果存储在 evens 向量中。上一篇:c++ map 排序
下一篇:c++中/是什么意思
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站