std::function和std::bind详解
时间: 2024-01-18 19:18:26 浏览: 173
C++11中lambda、std::function和std:bind详解
5星 · 资源好评率100%
std::function和std::bind是C++11中引入的两个重要的函数对象库。std::function是一个通用的函数封装器,可以用来存储、复制、调用任何可调用对象(函数、函数指针、成员函数指针、lambda表达式等)。std::bind是一个函数适配器,用于将可调用对象和其参数进行绑定,生成一个新的可调用对象。
下面是std::function和std::bind的详细介绍和示例:
1. std::function的使用:
```cpp
#include <iostream>
#include <functional>
bool compare(int x, int y) {
return x < y;
}
int main() {
std::function<bool(int, int)> fun;
fun = compare;
bool result = fun(3, 5);
std::cout << "std::function测试, result is " << result << std::endl;
return 0;
}
```
2. std::bind的使用:
```cpp
#include <iostream>
#include <functional>
bool compare(int x, int y) {
return x < y;
}
int main() {
std::function<bool(int)> fun;
fun = std::bind(compare, 3, std::placeholders::_1);
bool result = fun(5);
std::cout << "std::bind测试, result is " << result << std::endl;
return 0;
}
```
阅读全文