-
범위 기반 for 문프로그래밍 언어/C++ 2024. 5. 15. 21:54
범위기반 for 문 이란?
- 배열과 같은 iterator 구문에 있어서 값을 가져오는데 편의성을 주고자 C++11 에서 추가된 기능
vector<int> vec_ = {1,2,3,4}; for (int value : vec_) { std::cout << value << " "; }
이러한 형태를 가진다.
범위기반 for문 왜 사용하는가?
- 장점
- 처음과 끝을 지정해주지 않아도 순차적으로 iterator를 돌며 값을 가져올 수 있다.
- 값을 순차적으로 가져오기에는 유용하다
- 단점
- 인덱싱이 불편하다 ( 인덱싱을 줄이고자 가져온 형태이므로.. 일반적인 for문 추천...)
- 값을 변경하기가 까다롭다 (값을 변경하려면 포인터 혹은 참조자를 사용해야한다.)
끄저끄적 간단한 예제
- 일반적인 for문 형태
vector<int> vec_ = { 1,2,3,4,5 }; for (int i = 0; i < vec_.size(); i++) { cout << vec_[i] << " "; }
- 범위기반 for문 형태
vector<int> vec_ = { 1,2,3,4,5 }; for (int value : vec_) { cout << value << " "; }
- 범위기반 for문 (값 변경 - pointer)
int* test_ptr[4]; int test[4] = { 1,2,3,4 }; for (int i = 0; i < 4; i++) { test_ptr[i] = &test[i]; } vector<string> vec_string = { "abc", "cde" }; for (int* value : test_ptr) { (*value)++; } for (int value : test) { cout << value << " "; }
- 범위기반 for문 (값 변경 - reference)
vector<double> test_ = { 1.1, 1.2, 1.3, 1.4 }; for (double& value : test_) { value++; } for (double change_value : test_) { cout << change_value << " "; }
후기..
순차적으로 어떠한 값들을 확인하는 용도로 사용할 때 주로 사용하고, 아닌 경우에는 굳이 사용하지 않을 거 같은 느낌이 든다... (아직까지는 일반적인 for 문 형태가 편한 느낌 (?)... 적응해야지...)
'프로그래밍 언어 > C++' 카테고리의 다른 글
문자와 문자열 (0) 2024.06.21 자료형 (0) 2024.06.21 배열 (0) 2024.05.31 std::cin 정리 (0) 2024.05.31 C++ string 라이브러리 (0) 2024.05.29