제목에 명시된 것을 구현하는 방법이 궁금합니다. 내가 좋아하는 뭔가를 시도했습니다 ...std :: for_each 1 인수가있는 멤버 함수
std::for_each(a.begin(), a.end(), std::mem_fun_ref(&myClass::someFunc))
하지만 1 개 인자로 함수에 평가하지 않는다 "용어"(나는 "m이 가정은 3 인수를 의미) 없다는 오류 심지어 someFunc
하지만 하나 개의 인수를 않습니다 - a
에 저장된 객체의 유형을
을 내가 내가 할 노력하고있어하는 표준 라이브러리 (내가 아는를 사용하여 가능하면 궁금하네요 내가 부스트를 사용하여 쉽게 할 수 있습니다.)
추 신 : for_each
및을 사용합니다.은 수동으로 a
을 반복하고 객체를 someFunc
으로 전달하는 것과 비교할 때 성능상의 영향이 있습니까?
bind2nd를 사용한다고 가정합니다. 이제는 반복에서 현재 요소를 사용하도록 지정하는 방법을 생각하고 있습니다. 나는 단지 부스트를 사용할 것이라고 생각한다. – Person
Nope은 여전히 bind1st를 사용한다. mem_fun_ref는 두 개의 인수를 갖는 함수가됩니다. 첫 번째는 MyClass이고, 두 번째는 멤버 함수 param입니다. 첫 번째 인수를 mem_fun_ref에 바인드하여 클래스 인스턴스에 바인딩하려고합니다. – Stephen
@Person : Boost를 사용하려면 foreach 매크로를 사용하는 것이 좋습니다. 'std :: for_each'는 단순히 실패한 아이디어 였고, 더 많은 확산을 위해 종종 코드를 읽는 것이 더 어렵습니다. – GManNickG