아래 포스팅에서 소개를 했지만 C++ 의 발전은 정말 눈부신 것 같습니다.
2012/08/26 - [컴퓨터일반] - C++11 많이 좋아졌네요.
예전에 그리 어렵게 했던 또는 귀찮게 했던 것들이 하나 하나 쉬워지는 모습을 보면서 참…. 세상은 계속 좋아지는구나 라는 생각을 많이 하는데요~
오늘은 간단하게 아래 주소에서 소개하는 range based for loops 에 대해 소개 드리려 합니다.
http://www.cprogramming.com/c++11/c++11-ranged-for-loop.html
아래 포스팅의 cartesian.h 파일에서도 range based for loops 를 사용했는데요~ 참 편리하긴 하더군요.
2014/03/01 - [programming language/C/C++] - C++ Cartesian Product
C++ 의 vector 와 같은 container 에 대해 for 문 등을 돌릴 때 iterator 를 이용하던 인덱스를 이용하던 해야 했었는데 간단하게 아래 예와 같이 for 문을 돌릴수가 있습니다… 너무 간단해서 이게 C++ 맞나 하는 생각이 들더군요.
vector<int> vec;
vec.push_back( 10 );
vec.push_back( 20 );
for (int i : vec )
{
cout << i;
}
벡터 내의 값을 바꾸고 싶을 때는 다음과 같이 & 기호를 사용해서 이용하면 되고~
for (int& i : vec )
{
i++; // increments the value in the vector
}
int 라는 타입 조차 생각해서 써주기 귀찮다 하면 auto 라는 키워드를 사용해서 다음과 같이 작성 할 수 있습니다.
for (auto& i : vec )
{
i++; // increments the value in the vector
}
위 예들은 C++11에서 추가된 기능이니 만큼 최신의 컴파일러를 사용해야 합니다. 저는 gcc (tdm64-2) 4.8.1 을 사용하고 있고 아래 그림과 같이 codeblock 에서 C++11 Compiler Flag 를 체크 했습니다.
'programming language > C' 카테고리의 다른 글
C 언어 fgets() 함수를 활용한 파일 입력 받기 (0) | 2016.03.02 |
---|---|
C/C++ 매크로를 사용한 정수 타입 swap (0) | 2016.02.19 |
C/C++ 비트연산 매크로 (0) | 2015.03.31 |
Windows 에서 GCC 및 boost 사용하기 (0) | 2014.07.20 |
C/C++ Directory File Listing (0) | 2014.07.20 |
C++ file path 나누기 SplitPath (0) | 2014.07.18 |
C++ Cartesian Product (0) | 2014.03.01 |
C++ XML parser pugixml (4) | 2014.02.09 |
댓글