Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ 仿函数

作者:﹏尐甶园   发布日期:2026-06-06   浏览:21

// 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;
}

解释说明

  1. Square 仿函数:

    • Square 是一个结构体,重载了 operator(),使其可以像函数一样调用。
    • operator() 接受一个整数参数 x,返回其平方。
  2. IsEven 仿函数:

    • IsEven 也是一个结构体,重载了 operator(),用于判断一个整数是否为偶数。
    • 如果 x % 2 == 0,则返回 true,否则返回 false
  3. main 函数:

    • 创建一个整数向量 numbers,包含从 1 到 10 的整数。
    • 使用 std::transformSquare 仿函数计算每个元素的平方,并将结果存储在 squares 向量中。
    • 使用 std::copy_ifIsEven 仿函数筛选出所有偶数,并将结果存储在 evens 向量中。
    • 最后,输出平方后的数字和筛选出的偶数。

上一篇:c++ map 排序

下一篇:c++中/是什么意思

大家都在看

c++闭包

c++向上取整的代码

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++怎么输入字符串

c++ functional

c++框架代码

c++格式化字符串

c++ orm框架

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站