> 백엔드 개발 > C++ > C 11에서 범위 기반 For 루프를 어떻게 올바르게 사용할 수 있습니까?

C 11에서 범위 기반 For 루프를 어떻게 올바르게 사용할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-12-29 20:19:12
원래의
309명이 탐색했습니다.

How Can I Correctly Use Range-Based For Loops in C  11?

C 11에서 범위 기반 for 루프를 올바르게 사용하는 방법

범위 기반 for 루프는 C 11에 도입된 간결하고 강력한 Iterator 순회 메커니즘입니다. C 11이 도입되었습니다. 하나 이상의 변수를 통해 컨테이너 또는 기타 반복 가능한 시퀀스와 시퀀스의 참조 요소를 반복하는 데 사용됩니다. 범위 기반 for 루프를 올바르게 사용하는 방법은 다음과 같습니다.

구문

for (auto elem : container) {
  // 代码体
}
로그인 후 복사

여기서:

  • auto 키워드는 컴파일러가 자동으로 요소 유형.
  • elem은 루프의 요소에 대한 반복자 변수입니다.
  • 컨테이너는 반복할 컨테이너 또는 반복 가능한 시퀀스입니다.

요소 캡처 모드

범위 기반 for 루프를 사용할 때 다음 세 가지 요소 캡처 모드 중 하나를 선택할 수 있습니다.

  1. 값 캡처(자동 요소)를 누르세요. 요소의 로컬 복사본을 생성합니다. 이는 요소를 복사하기 쉬운 유형(예: int, double 등)에 작동합니다.
  2. 참조로 캡처(auto&elem): 컨테이너의 요소를 직접 참조합니다. 이는 복사를 피해야 하는 요소나 유형을 수정하는 데 사용됩니다.
  3. 참조로 프록시 캡처(auto&&elem): "프록시 반복자"(예: std::Vector)를 사용하여 컨테이너를 순회하는 경우.

관찰 또는 수정

범위 기반 for 루프는 두 가지 주요 목적으로 사용될 수 있습니다.

  1. 관찰 요소 사용 const auto&elem은 원래 요소가 수정되지 않도록 요소를 캡처합니다.
  2. 요소 수정: auto&elem을 사용하여 요소를 캡처하여 원래 요소를 직접 수정합니다.

지침

범위 기반을 올바르게 사용하려면 루프의 경우 다음 지침을 고려하세요.

  • 관찰된 요소의 경우 다음을 사용합니다.
for (const auto& elem : container) // 按引用捕获常量
로그인 후 복사
  • 수정된 요소의 경우 다음을 사용합니다.
for (auto& elem : container) // 按引用捕获
로그인 후 복사
  • 컨테이너가 "프록시"를 사용하는 경우 Iterator", 사용:
for (auto&& elem : container) // 按引用捕获 proxy
로그인 후 복사

일반 코드의 참고 사항

일반 코드에서는 관찰할 요소를 캡처하기 위해 const auto&elem을 사용하고, auto&&를 사용하는 것이 좋습니다. ;elem은 다양한 유형의 컨테이너 및 요소와 함께 작동하므로 수정을 위해 요소를 캡처합니다.

위 내용은 C 11에서 범위 기반 For 루프를 어떻게 올바르게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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