와 표준 : : 바인딩의 사용.내가 어떻게 표준 : : 바인드 일을 배우려고 노력하고 C의 이항 연산 기능 ++
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std::placeholders;
int fun2(int i,int j)
{
return i+j;
}
int fun(int i)
{
return i;
}
int main()
{
std::vector<int> v9={1,2,3,4,5,6,6,7};
std::transform(v9.begin(),v9.end(),v9.begin(),[](int i){return i;}); //works
std::transform(v9.begin(),v9.end(),v9.begin(),fun); //works
std::transform(v9.begin(),v9.end(),v9.begin(),std::bind(fun,_1)); //works
std::transform(v9.begin(),v9.end(),v9.begin(),std::bind(fun2,_1,_2)); //does not work
}
표준이 :: 변환도 이항 연산 기능을 허용 : 나는 다음 썼다. 그래서 fun2 쓴 및 std :: bind (줄의 마지막 줄) 사용하려고했지만 작동하지 않습니다. 누군가가 std :: bind가 자리 표시 자 (2,3 이상)를 사용하는 방법을 보여줄 수 있습니까? 그것은 한 개의 입력 범위에서 동작하고 있지 때문에
는
는'표준 : transform'는 하나 개의 인수를 전달합니다. 'std :: bind (fun2, _1, 5)'와 같은 것을하려고 했습니까? 이 통과 할 때 때를 제외하고 – chris
이 : [(2)] (http://en.cppreference.com/w/cpp/algorithm/transform) : – jrok
'표준을 사용하여 아무 소용이 정말 없다 :: bind' 당신이 돈이 ' 인수 중 하나를 바인드하지 마십시오. –