cpp中std::bind()的理解

允许我们创建一个可调用对象,它在调用时会将给定的参数绑定到一个函数或函数对象。
std::bind是C++11引入的函数绑定器(头文件),它的核心能力是:
绑定函数(普通函数/成员函数/对象函数)的部分/全部参数;
返回一个“新的可调用对象”(可以像普通函数一样调用);
未绑定的参数用【占位符】(std::placeholder::_1 、_2 、_3 ...)表示,调用新对象时传入的参数会按占位符序号填充。

点击查看代码
#include<iostream>
#include<functional>
int add(int a, int b) {
	return a + b;
}
int main() {
	// 
	auto bound_add = std::bind(add, 5, std::placeholders::_1);
	// add要绑定的目标函数(这里是普通函数int add(int a,int b))。
	// 5 要固定绑定到add第一个参数(a)的值,即a=5被固定死
	// std::placeholders::_1 占位符(第一个位置),表示:调用bound_add时传入的第一个参数,会填充到add的第二个参数(b)的位置
	// 可以把bound_add理解为一个新函数,它的签名是:int(int)(接收1个int参数,返回int)。
	std::cout << bound_add(10) << std::endl;//输出:15
}
posted @ 2026-01-06 10:20  阳光天气  阅读(4)  评论(0)    收藏  举报