RoadMap4:C++的函数与lambda函数

本文内容主要学习C++的标准库函数、自定义函数方法以及lambda函数的使用方法。

1. 标准库函数

我们可以直接调用别人写好的库函数,如 printf(), scanf(), sqrt() 等等,当然前提是把他们对应的头文件进行 #include 进来。

2. 自定义函数

很多时候,我们想要实现特定功能的函数,这时候就需要自己进行定义,定义函数的基本框架如下:

return_type function_name(parameter list) {
    // function body
}

return_type:返回值类型,如 int,float等等;
function_name:函数名称;
parameter list:传入参数的列表;
function body:定义函数的主要功能;

举个例子,实现一个求和的函数:

#include <iostream>
using namespace std;

// Function prototype:函数原型,可以先声明函数的原型,而展示不对函数主体进行定义
int multiplyNumbers(int x, int y);

int main() {
    int num1 = 3, num2 = 7;
    int result = multiplyNumbers(num1, num2); // Calling the function
    cout << "The product is: " << result << endl;
    return 0;
}

// Function definition
int multiplyNumbers(int x, int y) {
    int product = x * y;
    return product;
}

3. lambda 函数

lambda函数是一种匿名函数,也就是不需要指定函数的名字,这样会使得函数的定义更加的简洁;

以下是lambda函数的基本语法:

[capture-list](parameters) -> return_type {
    // function body
};

capture-list:用于访问周围作用域中的变量列表,通俗来说就是访问与定义lambda函数同级定义的变量;
parameters:传入参数,与自定义函数中的 parameter list 相对应;
return_type:返回类型;
function body:函数主体,定义函数的主要功能;

以下通过一个简单的例子学习以下lambda函数的使用方法:

#include<iostream>

int main(){
    // 1. 定义一个没有传参的lambda函数
    auto printHello = [](){
        std::cout << "Hello World!" << std::endl;
    };
    printHello();   // Output: Hello World!

    // 2. 使用paramslist,定义一个求和函数, 注意函数返回类型只能定义为 auto
    auto add = [](int a, int b){
        return a + b;
    };
    std::cout << add(3, 4) << std::endl;    // Output: 7

    // 3. 使用capture-list,读取相同作用域下的其他变量
    int multiplyer = 3;
    auto multiply = [multiplyer](int x){
        return multiplyer * x;
    };
    std::cout << multiply(5) << std::endl;    // Output: 15

    // 当然,我们也可以通过引用传参来改变该作用域下变量的取值
    // 此处通过 引用传参,将 multiplyer 增大 x 倍
    auto modify = [&multiplyer](int x){
        multiplyer = multiplyer * x;
    };
    modify(5);
    std::cout << multiplyer << std::endl;    // Output: 15
}
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值