Lyn
조회 수 34453 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

역시 이번에도 아무도 관심가져주지 않는 (...) 불쌍한 주제를 하나 가지고 나와봤습니다


C++의 표준 라이브러리인 stl 의 특징이라고 하면 반복자(iterator)의 존재하고 할 수 있는데요...

이 반복자들은 여러가지 종류가 있습니다. 

정방향 or 역방향, 임의접근 or 순차접근, 상수 or 비상수 등 여러가지 조합의 반복자를 생성 할 수 있는데요 ...


이중 방향은 애초에 별도의 함수로 제공되고 (begin vs rbegin), 임의접근이냐 순차접근이냐는 컨테이너의 특성에 달린 문제었습니다.
그러나 상수 반복자(const_iterator)는 별도의 함수가 제공되지 않았는데요, C++특성상 비상수 -> 상수 의 변환은 자유롭기 때문입니다.

그래서 비상수 반복자를 리턴하는 begin 을 호출 후 상수반복자 type 의 변수에 대입하여 사용하는 식으로 구현 되었었지요.



하지만 C++11에선 상수반복자를 리턴하는 cbegin 이 추가되었습니다.
왜냐구요? auto 키워드의 존재 때문입니다. 

사용해보신 분은 아시겠지만 auto 는 한번 써보고 나면 없으면 stl 쓰기 싫어질 정도로 반복자와 함께 사용할때 아주 편한 기능인데, auto는 인터프리팅 언어들처럼 동적타입 변수가 아니라 우변의 type을 유추해서 컴파일타임에 type이 정해지기 때문에 begin 으로 리턴받은 반복자는 반드시 비상수 반복자가 됩니다.


그렇기에 C++11에서는 auto와 함께 사용할 수 있는 상수 반복자를 리턴하는 별도의 함수가 추가되었습니다. 애초에 상수반복자를 리턴하기 때문에 auto로 선언해도 좀 더 안전한 코드를 짤 수 있게 됩니다.


TAG •
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
57 Visual Studio 2013 새로 추가된 기능 둘러보기 file Lyn 2013.10.28 19824
56 Microsoft C++ MVP 리워드를 개봉 해 보았습니다. 3 file Lyn 2013.10.11 51042
55 MS SQL Server 2012 언인스톨시 Rsfx Driver 의존성으로 인해 언인스톨이 되지 않는 경우 Lyn 2013.10.09 19910
54 Visual C++ 2013 RC 추가기능 1. Raw String Literal 3 file Lyn 2013.10.07 15728
53 Microsoft VC++ MVP를 받았습니다.... file Lyn 2013.10.02 15122
52 서버를 Windows 2012 R2로 교체 하였습니다. 1 Lyn 2013.09.29 22082
51 VS2013 RC 설치해봄 file Lyn 2013.09.28 14019
50 현재 MSDN Download Page file Lyn 2013.09.23 19526
49 boost::icl::interval_map 원하는대로 변경해서 사용해보기 file Lyn 2013.09.23 22200
48 MSDN 에 릴리즈된 MS 제품들입니다. 1 file Lyn 2013.09.10 20526
47 C Runtime Library Exception Dump 남기기 두번째 방법 Lyn 2013.06.25 25803
46 C Runtime Library Exception Dump 남기기 첫번째방법 Lyn 2013.06.11 33024
45 Visual Studio 2012 Update2 Offline 설치 1 Lyn 2013.04.11 23450
» C++11 표준 라이브러리 확장 (cbegin, cend) Lyn 2012.10.04 34453
43 C++11 표준 라이브러리 확장 (string) 3 file Lyn 2012.09.10 28241
42 대기하는 쓰래드 모두 깨우기 (Java의 notifyAll) Lyn 2012.09.04 37891
41 C++ 템플릿 상속에서 베이스 클래스의 멤버에 접근하는 경우의 문제 1 file Lyn 2012.08.29 30233
40 [윈도8] 윈도8 구경1 1 file Lyn 2012.08.17 26510
39 C++ string&형 인자에 기본값 주기 Lyn 2012.07.24 25860
38 [작성중] 윈도우 32bit, 64bit 프로그래밍시 주의할점 2 Lyn 2012.07.16 27598
Board Pagination Prev 1 ... 2 3 4 5 6 7 ... 8 Next
/ 8