> 백엔드 개발 > C++ > 올바른 C 11 범위 기반 'for' 루프 구문을 선택하는 방법은 무엇입니까?

올바른 C 11 범위 기반 'for' 루프 구문을 선택하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-16 05:55:09
원래의
501명이 탐색했습니다.

How to Choose the Right C  11 Range-Based `for` Loop Syntax?

C 11의 범위 기반 구문 이해

C 11의 범위 기반 for 루프는 컨테이너 반복을 위한 단순화된 구문을 제공합니다. 구문은 컨테이너의 요소를 관찰할지 수정하려는지 여부에 따라 다릅니다.

요소 관찰의 경우

요소를 수정하지 않고 관찰하려면 권장 구문은 다음과 같습니다.

for (const auto& elem : container)
로그인 후 복사

이 구문은 const 참조로 요소를 캡처하여 개체 비용이 많이 드는 경우 불필요한 복사본을 피합니다. copy.

요소 수정용

요소를 수정해야 하는 경우 구문은 다음과 같습니다.

for (auto& elem : container)
로그인 후 복사

이 구문은 요소를 캡처합니다. 상수가 아닌 참조로 루프 본문에서 수정할 수 있습니다.

특수 사례: 프록시 반복자

그러나 프록시 반복자를 사용하는 컨테이너(예: std::Vector)의 경우 요소를 수정하려면 다른 구문이 필요합니다.

for (auto&& elem : container)
로그인 후 복사

이것은 구문은 "&&" 유형 수정자를 사용하여 프록시와 올바르게 작동합니다. iterators.

요약

  • 요소를 관찰하려면 복사 비용이 저렴하다면 for (const auto& elem : 컨테이너) 또는 for (auto elem : 컨테이너)를 사용하세요.
  • 요소를 수정하려면 for (auto& elem : 컨테이너) 또는 for (auto&& elem : 컨테이너)를 프록시 반복자용으로 사용합니다.
  • 일반 코드에서는 표준 및 프록시 반복자를 모두 적절하게 처리하기 위해 관찰을 위해 const 참조 구문을 사용하고 수정을 위해 auto&&를 사용하는 것이 좋습니다.

위 내용은 올바른 C 11 범위 기반 'for' 루프 구문을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿