이 주제에서는 C++ 프로그래밍 언어의 범위 기반 for 루프에 대해 설명합니다. C++ 언어는 C++11 이상 버전에서 범위 기반 for 루프라는 새로운 개념을 도입했는데, 이는 일반 For 루프보다 훨씬 뛰어납니다. 범위 기반 for 루프는 for 루프 반복을 구현하기 위해 대규모 코딩이 필요하지 않습니다. 범위(처음부터 끝까지)에 걸쳐 컨테이너의 각 요소를 반복하는 순차 반복자입니다.
통사론
for (range_declaration : range_expression ) loop statement
참고: 컨테이너 요소의 데이터 유형을 모르는 경우 range_expression의 데이터 유형을 자동으로 식별하는 auto 키워드를 사용할 수 있습니다.
for 루프를 기반으로 범위를 사용하여 배열의 각 요소를 인쇄하는 프로그램
C++에서 범위 기반 for 루프를 사용하여 int 및 double 배열을 인쇄하는 예를 고려해 보겠습니다.
프로그램.cpp
안드로이드의 이스터 에그가 뭐야?
#include using namespace std; int main () { int arr1 [5] = { 10, 20, 30, 40, 50}; double darr [5] = { 2.4, 4.5, 1.5, 3.5, 4.0 }; // use range based for loop for ( const auto &var : arr1 ) { cout << var << ' ' ; } // use auto keyword to automatically specify the data type of darr container. for ( const auto &var : darr ) { cout << var << ' ' ; } return 0; }
산출
10 20 30 40 50 2.4 4.5 1.5 3.5 4.0
for 루프 기반 범위 내 벡터를 보여주는 프로그램
for 루프 기반 범위 내에서 벡터를 구현하는 간단한 프로그램을 작성해 보겠습니다.
프로그램2.cpp
#include #include using namespace std; int main() { int x; // declare integer variable // declare vector variable vector vect = {5, 10 , 25, 20, 25}; // display vector elements for ( int x : vect) { cout << x << ' '; } return 0; }
산출
라이브 크리켓을 위한 mylivecricket
5 10 25 20 25
C++에서 참조와 함께 Range 기반 for 루프를 사용하여 배열을 인쇄하는 프로그램
C++에서 for 루프를 기반으로 범위를 사용하여 배열 요소를 인쇄하는 예를 고려해 보겠습니다.
프로그램3.cpp
#include #include #include using namespace std; int main(){ array data = {1, 3, -2, 4, 6, 7, 9}; cout << ' Before updating the elements: ' << endl; for (int x : data){ cout << x << ' '; } // pass the references for (int &itemRef : data){ itemRef *= 3; } cout << endl << ' After modification of the elements: ' << endl; for (int x : data){ cout << x << ' '; } cout << endl; return 0; }
산출
Before updating the elements: 1 3 -2 4 6 7 9 After modification of the elements: 3 9 -6 12 18 21 27
중첩된 범위 기반 for 루프
루프가 다른 루프의 본문 내부에 정의되면 해당 루프를 중첩된 for 루프라고 합니다. 마찬가지로, 다른 범위 기반 루프 내부의 루프에서 범위를 정의하는 경우 이 기술을 중첩된 범위 기반 for 루프라고 합니다.
우편 집배원
통사론:
for ( int x : range_expression) // outer loop { for ( int y : range_expression) // inner loop { // statement to be executed } // statement to be executed }
위 구문에서는 다른 루프 내에 하나의 범위 기반 for 루프를 정의합니다. 여기서는 C++에서 내부 및 외부 범위 기반 for 루프를 호출합니다.
C++에서 중첩된 범위 기반 for 루프를 인쇄하는 프로그램
C++ 프로그래밍 언어의 for 루프 기반 중첩 범위를 보여주는 예를 생각해 보세요.
범위.cpp
#include using namespace std; int main () { int arr1[4] = { 0, 1, 2, 3 }; int arr2[5] = { 1, 2, 3, 4, 5 }; // use nested range based for loop for ( int x : arr1 ) { // declare nested loop for ( int y : arr2 ) { cout << ' x = ' << x << ' and j = ' << y << endl; } } return 0; }
산출
x = 0 and j = 1 x = 0 and j = 2 x = 0 and j = 3 x = 0 and j = 4 x = 0 and j = 5 x = 1 and j = 1 x = 1 and j = 2 x = 1 and j = 3 x = 1 and j = 4 x = 1 and j = 5 x = 2 and j = 1 x = 2 and j = 2 x = 2 and j = 3 x = 2 and j = 4 x = 2 and j = 5 x = 3 and j = 1 x = 3 and j = 2 x = 3 and j = 3 x = 3 and j = 4 x = 3 and j = 5
기존 for 루프와 범위 기반 for 루프의 차이점은 무엇입니까?
ㅏ 전통적인 for 루프 지정된 조건이 true가 될 때까지 코드 블록을 반복적으로 실행하는 데 사용됩니다. 전통적인 for 루프에는 변수 초기화, 조건 지정, 마지막 매개변수는 조건이 true인 경우 1씩 증가하는 카운터라는 세 가지 매개변수가 있습니다.
통사론:
for ( variable_initialization; specify_condition; updated_counter) { // statement to be executed; }
범위 기반 루프
머신러닝의 종류
반면에 C++ 11 이상 버전에서는 새로운 범위 기반 for 루프를 사용할 수 있습니다. 여기에는 두 개의 매개변수, 범위 선언과 range_ 표현식이 있습니다. 또한 일정 범위에 걸쳐 코드 블록을 반복적으로 실행하는 데에도 사용됩니다.
통사론
for ( range_declaration : range_ expression ) { loop _statement; // statement to be executed; }
range_declaration은 range_expression(컨테이너)과 관련된 변수의 유형을 선언하는 데 사용됩니다. range_expression: 동일한 유형의 요소를 순차적으로 보유하는 컨테이너와 같습니다. loop_statement는 for 루프 내에서 실행되는 명령문을 정의합니다.
범위 기반 for 루프의 장점
- 사용하기 쉽고 구문도 간단합니다.
- 범위 기반 for 루프에서는 컨테이너의 요소 수를 계산할 필요가 없습니다.
- 컨테이너의 시작 및 끝 요소를 인식합니다.
- 컨테이너의 크기와 요소를 쉽게 수정할 수 있습니다.
- 요소의 복사본은 생성되지 않습니다.
- 기존 for 루프보다 훨씬 빠릅니다.
- 일반적으로 auto 키워드를 사용하여 컨테이너 요소의 데이터 유형을 인식합니다.
범위 기반 for 루프의 단점
- 목록의 일부를 순회할 수 없습니다.
- 역순으로 이동하는 데 사용할 수 없습니다.
- 포인터에는 사용할 수 없습니다.
- 현재 요소의 색인을 제공하지 않습니다.