범위 기반 for 루프와 호환되는 사용자 정의 유형 만들기
사용자 정의 데이터 유형과 함께 범위 기반 for 루프를 사용하려면 두 가지 주요 옵션이 있습니다:
네임스페이스 고려 사항:
사용자 정의 유형이 xml과 같은 네임스페이스에 있는 경우 start() 및 end()를 선언해야 합니다. 해당 네임스페이스 내의 함수도 마찬가지입니다. xml::begin() 또는 std::begin()을 지정할 필요가 없습니다.
메서드 요구 사항:
시작/끝 반환 값은 다음과 같습니다. 실제 반복자여야 합니다. 그러나 특정 요구 사항을 준수해야 합니다.
범위 기반 for 루프 확장:
범위 기반 for 루프 구문인 for(range_declaration : range_expression)는 다음 의사 코드로 확장됩니다.
{ auto &range = range_expression; for (auto begin = begin_expr, end = end_expr; begin != end; ++begin) { range_declaration = *begin; loop_statement } }
C 17 디커플링 엔드 유형:
C 17에서는 범위 기반 for 루프 확장 의사코드가 다음과 같이 변경되었습니다.
{ auto &range = range_expression; auto begin = begin_expr; auto end = end_expr; for (; begin != end; ++begin) { range_declaration = *begin; loop_statement } }
이 변경으로 인해 끝 반복자 유형이 시작 반복자 유형과 다를 수 있습니다. 시작 반복자 유형을 사용한 부등식 비교만 지원하는 "센티넬" 반복자를 사용할 수 있습니다.
위 내용은 내 사용자 정의 유형이 C의 범위 기반 for 루프와 작동하도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!