18
std::accumulate
과 std::min
을 결합하려고합니다. 이 같은 (컴파일되지 않습니다) :std :: accumulate를 std :: min과 함께 사용할 수 있습니까?
vector<int> V{2,1,3};
cout << accumulate(V.begin()+1, V.end(), V.front(), std::min<int>);
가능합니까? std::min
에 대한 래퍼 펑터를 쓰지 않고도 가능합니까?
은 내가 람다 함께 할 수 있다는 사실을 알고 :
vector<int> V{2,1,3};
cout << std::accumulate(
V.begin()+1, V.end(),
V.front(),
[](int a,int b){ return min(a,b);}
);
그리고 std::min_element
이 알고있다. 최소 요소를 찾으려는 것이 아니라, std::accumulate
을 std::min
(또는 ::min
)과 결합하여 C++의 표현식과 같은 함수 프로그래밍을 허용하는 라이브러리가 필요합니다.
당신은 너무 못생긴 캐스트를 사용할 수'(CONST의 INT 및을 (*) (CONST의 INT 및, CONST INT &)) 표준 : 분'. –
나는 람다 버전을 더 좋아하는 경향이있다. – moooeeeep
@ JesseGood : y u 'static_cast' 아니요? : \ – Mehrdad