【发布时间】:2017-03-31 14:58:08
【问题描述】:
代码如下:
vector<int> vec{ 0, 1, 2, 3, 4, 5, 6, 7 };
string str("123456");
auto result = find_if(vec.begin(), vec.end(), bind(check_size, str, _1));
它不会像这样将vec 传递给_1:(但代码可以正常运行)
auto checkn = bind(check_size, str, _1);
checkn(vec);
这是否意味着_1 可以自动接收vec?我对此感到很困惑。
【问题讨论】:
-
find_if不会将vector传递给它,而是将vector的元素传递给它。 -
谢谢!我很困惑 bind 怎么知道 _1 是什么。
-
_1只是bind声明的占位符。传入的参数由调用者决定,即这里的find_if。
标签: c++ c++11 functional-programming bind