Language/C++
C++ 11 :: Range Based ForVallistA2014. 10. 20. 22:00
C++ 11 :: Range Based For
기존에 있던 C++의 for 구문은 정확히 자신이 무엇을 해야하는지 명확하게 나타내게 되어 있습니다.
하지만 수많은 자료형이 생김에 따라 자료형을 있는 그대로 다 가져올 수 있는 for 문 Type을 만들 수 있게 되었습니다.
그것이 Range Based For의 시작입니다.
for문은 우리가 반복문으로 많이 쓰던 함수입니다.
아주 간단한 구조로 이루어져 있어서 굉장히 많이 쓰이던 것 이었죠.
for(초기화 문, 조건 문, 증감 문) 으로 되어있습니다.
자 이번 예제에서도 vector을 이용해 예를 들도록 하겠습니다.
일반 C++ 에서의 간단한 과정입니다.
이런 형식으로 사용을 했었죠.
C++ 11에서는 어떤 식으로 사용을 할까요?
먼저 첫번째 사용 방법입니다.
이 사용 방법은 :(콜론) 을 사용하여 전부 다 돌게 됩니다.
기존의 iterator 처럼 하나하나씩 돌 필요가 없이 이런 형식으로 내부의 값을 전부 가져올 수 있게 됩니다.
두번째 방법 입니다.
두번째는 C# 처럼 for each를 사용하는 방법입니다.
STL 라이브 러리 안에는 for_each 라는 구문이 있습니다.
둘다 똑같지만, STL 안에있는 것을 사용하기를 권고 드립니다.
각각의 마다, 해당하는 for문을 적절하게 써준다면 좀 더 효율적인 코딩이 되지 않을까 싶습니다.
다만 이렇게 사용하게 될 경우 단점도 존재합니다.
먼저 편리하고, 각각의 자료형 대로 사용이 가능합니다.
하지만 이진 탐색이라던지 자료구조를 제대로 활용 할 수 없게 되어버립니다.
수많은 배열을 돌릴 때 속도가 전반적으로 느리기 때문에 이 방법은 추천드리지 않습니다.
'Language > C++' 카테고리의 다른 글
C++ 11 :: decltype (0) | 2014.10.20 |
---|---|
C++ 11 :: Uniform Initialization (0) | 2014.10.20 |
C++ 11 :: Auto (0) | 2014.10.20 |
C++ :: 문자열 split (string tokenizer) (2) | 2014.06.01 |
C++ :: string 문자열 (0) | 2014.06.01 |
댓글
VallistA
병특이 끝나서 게임에서 웹으로 스위칭한 프로그래머.
프로그래밍 정보등을 공유합니다.
현재는 이 블로그를 운영하지 않습니다.
vallista.kr 로 와주시면 감사하겠습니다!
자고 싶습니다. ㅠㅠ
Github :: 링크
궁금한점 문의 주시면 답변드리도록 하겠습니다
VISITED
Today :
Total :
Lately Post
Lately Comment