如果让fun(xxx) 这里传递参数
时间: 2023-08-04 10:09:33 浏览: 102
如果我们有一个函数 `fun`,并且想要使用 `std::bind` 来创建一个函数对象,并且传递参数,可以将参数放在 `std::bind` 的参数列表中。
例如,假设我们有以下的函数:
```c++
#include <iostream>
void fun(const std::string& name, int age) {
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
```
现在我们想要使用 `std::bind` 来创建一个函数对象,并且传递参数 `"Alice"` 和 `18`。我们可以这样做:
```c++
#include <functional>
int main() {
auto f = std::bind(fun, "Alice", 18);
f(); // 输出 Name: Alice, Age: 18
return 0;
}
```
在上面的例子中,我们使用 `std::bind` 绑定了一个函数 `fun`,并且将参数 `"Alice"` 和 `18` 传递给它,然后创建了一个函数对象 `f`,并且调用它,输出了 Name: Alice, Age: 18。
需要注意的是,当我们使用 `std::bind` 绑定函数并且传递参数时,需要将参数依次列在 `std::bind` 的参数列表中。例如:
```c++
auto f = std::bind(fun, "Alice", 18);
```
在上面的例子中,`"Alice"` 表示函数的第一个参数,`18` 表示函数的第二个参数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)