本文内容主要学习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
}