Вот код:О «связываются» в C++
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' к нему. – songyuanyao
Спасибо! Я сбивал с толку, что как bind знает, что такое _1. –
'_1' является просто заполнителем, объявленным' bind'. Какой аргумент будет передан, определяется вызывающим, то есть 'find_if' здесь. – songyuanyao