[] 연산자를 사용할 수있는 클래스를 사용할 수있는 함수를 만들려고합니다. 나는 그것을 받아 들일 수 있도록하고 싶습니다 : 벡터 또는 일부 내가 찾은 실험에 의해 를 인덱싱 할 수있는 다른 컨테이너 참조하거나 값을 기준으로 하나 배열 PartialOrd, PartialEq과 같은 다른 특성이 필요합니다. 또한 얼마나 많은 객체가 컨테이너에 있는지 알아야합
std::reverse(c.begin(), c.end())은 기본 컨테이너 c이 양방향 반복기을 제공해야하는 이유는 무엇입니까? 사실상 이것은 (multi-) map, (multi-) set을 의미하지만, 주문되어 있기 때문에 역전 될 수 없습니다. 유일한 다른 양방향 디렉토리 컨테이너는 list이지만 그 자신의 멤버 함수는 .reverse()입니다. 이
ForwardIterators는 OutputIterator가되어야합니까? 현재 STL 구현 (VS2012)은 input_iterator_tag과 output_iterator_tag에서 forward_iterator_tag을 파생하지만 표준 [N3485]에서이 요구 사항을 찾을 수 없습니다.
C++ 11에서 정방향 출력 반복기를 표준 방식으로 정의하는 방법은 무엇입니까? 표준에 따르면 forward_iterator는 input_iterator입니다. 따라서 해당 forward_iterator_tag은 input_iterator_tag으로 만 확장됩니다. 반복기를 정의하기 위해 std::iterator을 사용하는 경우, forward-output
을 iterator_traits error: no member named ' iterator_category ' in ' std::__1::iterator_traits<Iter> ' std::is_same<std::iterator_traits<Iter>::iterator_category, Iter::iterator_category>::value, "");