그냥 게임개발자
for in range 본문
for in range
음..
반복문인데 C++11에서 효율적인 반복문이라는 것이 추가가 되었어요.
쓸만함!
근데 저는 아직 습관이 덜 되어서 for (int i = 0; i < 아직 이런...것을 쓰지만
제가 C++를 많이 해보지는 않았지만
C#에서도 똑같은 for in range가 있는데 foreach라고 근데 그거 속도 느리대요.
실제 해봤는데
조금 차이가 있어요.
이유는 나중에 설명할게요.
아무튼!
C++에서 사용하는 범위기반 for 루프
vecotr만 쓸 수 있는 것이 아니라 순회할 수 있는 컨테이너라면 다 사용할 수 있습니다.
vector, Array, map 등 다 사용 가능합니다.
for (range_declaration : range_expression)
loop_statement
이거 뭔소리야
진짜 제가 영어만 잘했잖아요?
모든 자료구조 다 정의 들어가가지고 다 해석할 사람이에요
근데 영어몰라서 안함
진짜
진짜로

for (range_declaration : range_expression)
loop_statement
해석해봐요

왜 loop_statement만 빼

papago도 똑같네;;
그냥 그거에요.
for (표현할 부분 : 표현이 될 범위)
표현할 부분을사용
이런식으로 생각하기로했어요 저는
그렇다면 이와 같겠죠?
for (<컨테이너 안의 타입> 변수명 : 컨테이너)
그러면 말로만으로 사용 방법을 모를 수 있으니 직접 활용해봅시다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec { 1, 2, 3 };
// 범위기반 for문
// 타입 변수명 컨테이너
for (int entity : vec)
cout << entity << ' '; // 사용
cout << '\n';
// 원래 for문
for (int i = 0; i < vec.size(); ++i)
cout << vec[i] << ' ';
cout << '\n';
vector<pair<int, int>> vecPair = { { 1, 2 }, { 3, 4 } };
for (pair<int, int> entityPair : vecPair)
cout << entityPair.first << ", " << entityPair.second << "\n";
cout << '\n';
return 0;
}
pair로 담는다면 표현할 타입에도 컨테이너 안에 있는 타입을 적는 거니 pair로 써줘야겠죠?
결과값은 이래요

음음 완벽해요
아래는 똑같은 기능을 합니다.
for (int entity : vec)
for (int i = 0; i < vec.size(); ++i)
끄읕
'내 개인적인 공부 > 자료구조' 카테고리의 다른 글
vector를 통해서 2차원 배열 만들기 (0) | 2024.04.13 |
---|---|
vector의 정적할당? (0) | 2024.04.13 |
[C++] vector - 함수들 (0) | 2024.04.13 |
C++ - vector (1) | 2024.04.13 |
자료구조란? (0) | 2024.04.12 |