어쩌면이 질문은 조금에게 이론적입니다,하지만, IMO, 전달 된 객체를 의미한다이표준 : MINMAX
template <class T>
pair<T,T> minmax (initializer_list<T> il);
같은 std::minmax
을 정의 뒤에 디자인 인센티브가 무엇인가 궁금해 인수
li
은
으로 복사되며 해당 구성원은 모두 복사 가능해야합니다.
동안, std::min_element
(또는이 문제 std::max_element
의 경우)에만 컨테이너의 반복자가 전달되는 의미에서 더 "효율적"인
template <class ForwardIterator>
ForwardIterator min_element (ForwardIterator first, ForwardIterator last);
EDIT (필요는 실제로 전체 컨테이너 복사 없습니다) -에 기반을 Joachim Pileborg 코멘트, initializer_list<T>
개체가 복사되지 않습니다. 그래서 std::minmax
이 임의의 컨테이너 ("비 const"성격을 가짐)에 속하지 않는 이유는 무엇입니까?
에서 [이 참조] (HTTP : // EN .cppreference.com/w/cpp/utility/initializer_list) : "'std :: initializer_list'를 복사해도 기본 객체를 복사 할 수 없습니다." –
@ Joachim Pileborg Thx, 내 질문을 편집했습니다. –