C 11의 범위 기반 for 루프
구문 및 사용법
C 11에서는 간결하고 표현적인 방법으로 범위 기반 for 루프를 도입했습니다. 컨테이너를 반복합니다. 구문은 다음과 같습니다.
for (range_declaration : container) {
// body of the loop
}
로그인 후 복사
여기서:
- range_declaration은 컨테이너의 각 요소를 보유하는 변수를 선언합니다.
- container는 반복하려는 컨테이너입니다. 이상.
참고로 캡쳐 또는 값
range_declaration의 변수는 다음 구문을 사용하여 참조 또는 값으로 캡처할 수 있습니다.
- auto는 값으로 요소를 캡처합니다.
- auto&는 요소를 캡처합니다. const가 아닌 참조로.
- const auto&는 const로 요소를 캡처합니다.
수정할 필요가 없는 요소를 관찰하려면 const auto&를 사용해야 합니다. 이렇게 하면 불필요한 복사본이 방지되고 원본 요소가 수정되지 않습니다.
요소를 수정하려면 auto&를 사용하세요.
프록시 반복자(예: std::Vector), 요소를 캡처하려면 auto&&를 사용해야 합니다. value.
범위 기반 For 사용 지침
범위 기반 for 사용 시 다음 지침을 고려하십시오.
- 관찰 요소의 경우:
for (const auto& elem : 컨테이너) (const로 캡처 참조)- 요소를 복사하기 쉬운 경우(예: 정수) for (auto elem : 컨테이너)(값으로 캡처)를 사용할 수 있습니다.
-
- 요소 수정:
for (auto& elem : 컨테이너) (캡처 기준: 비-상수 참조)- 프록시 반복자(예: std::Vector)의 경우 for (auto&& elem : 컨테이너)를 사용합니다(&&로 캡처).
-
일반 코드 고려 사항
일반 코드에서는 반복되는 요소의 유형을 모르는 경우 요소를 관찰하려면 다음을 사용하세요.
for (const auto& elem : 컨테이너)- for (auto&& elem : 컨테이너) for 요소 수정(일반 및 프록시 반복자 모두에서 작동)
-
위 내용은 C 11에서 범위 기반 For 루프를 효과적으로 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!