728x90
반응형

[for문의 기본 형태]

for(초기식; 조건식; 변화식)
{
	반복할 명령문;
}

 

[생략]

// 초기화 생략
int i = 0;
for(; i < 10; ++i)
{
	printf("%d ", i);
}

// 반복 조건식 생략  -> 무한 루프
for(int i = 0;; ++i)
{
	printf("%d ", i);
}

// 반복 진행식 생략  -> 무한 루프
for(int i = 0; i < 10;)
{
	printf("%d ", i);
}

// 모두 생략  -> 무한 루프
for(;;)
{
	printf("%d ", i);
}

초기화식, 조건식, 진행식을 생략 가능하다.

문법상으로는 문제가 없으나 초기화식 생략을 제외한 생략은 무한루프에 빠질 수 있다.

 

[범위기반 for문]

// c++11
#include <iostream>
#include <vector>

using namespace std;

int main()
{
	vector<int> vec = {0, 1, 2, 3, 4, 5};
    
    for(int v : vec)		// 범위기반 for문.
    {
    	printf("%d ", v);
    }

	return 0;
}

c++11에서 새로 도입된 범위기반 for문이다.

내부적으로 반복자(iterator)를 사용하며, begin(), end()를 가진 STL(c++ standard library)컨테이너의 경우 범위기반 for문을 사용가능하다.

간단하게 자료구조의 원소들을 접근할 수 있다는 장점이 있지만, begin부터 모든 원소를 순차적으로 순회하기 때문에 특정 인덱스만 처리가 불가능하다.

 

 

 

728x90
반응형

'c++ > c++' 카테고리의 다른 글

setlocale  (0) 2023.07.10
thread_local  (1) 2022.09.13
__declspec(thread) 지시자  (0) 2022.08.05
클래스 전방선언  (0) 2021.09.07
. 과 -> 의 차이  (1) 2021.07.12

+ Recent posts