Lyn
조회 수 34570 추천 수 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 •
?

  1. Visual Studio 2013 새로 추가된 기능 둘러보기

    Date2013.10.28 ByLyn Views19933
    Read More
  2. Microsoft C++ MVP 리워드를 개봉 해 보았습니다.

    Date2013.10.11 ByLyn Views51174
    Read More
  3. MS SQL Server 2012 언인스톨시 Rsfx Driver 의존성으로 인해 언인스톨이 되지 않는 경우

    Date2013.10.09 ByLyn Views20019
    Read More
  4. Visual C++ 2013 RC 추가기능 1. Raw String Literal

    Date2013.10.07 ByLyn Views15847
    Read More
  5. Microsoft VC++ MVP를 받았습니다....

    Date2013.10.02 ByLyn Views15235
    Read More
  6. 서버를 Windows 2012 R2로 교체 하였습니다.

    Date2013.09.29 ByLyn Views22202
    Read More
  7. VS2013 RC 설치해봄

    Date2013.09.28 ByLyn Views14118
    Read More
  8. 현재 MSDN Download Page

    Date2013.09.23 ByLyn Views19652
    Read More
  9. boost::icl::interval_map 원하는대로 변경해서 사용해보기

    Date2013.09.23 ByLyn Views22351
    Read More
  10. MSDN 에 릴리즈된 MS 제품들입니다.

    Date2013.09.10 ByLyn Views20657
    Read More
  11. C Runtime Library Exception Dump 남기기 두번째 방법

    Date2013.06.25 ByLyn Views25969
    Read More
  12. C Runtime Library Exception Dump 남기기 첫번째방법

    Date2013.06.11 ByLyn Views33179
    Read More
  13. Visual Studio 2012 Update2 Offline 설치

    Date2013.04.11 ByLyn Views23621
    Read More
  14. C++11 표준 라이브러리 확장 (cbegin, cend)

    Date2012.10.04 ByLyn Views34570
    Read More
  15. C++11 표준 라이브러리 확장 (string)

    Date2012.09.10 ByLyn Views28405
    Read More
  16. 대기하는 쓰래드 모두 깨우기 (Java의 notifyAll)

    Date2012.09.04 ByLyn Views38052
    Read More
  17. C++ 템플릿 상속에서 베이스 클래스의 멤버에 접근하는 경우의 문제

    Date2012.08.29 ByLyn Views30417
    Read More
  18. [윈도8] 윈도8 구경1

    Date2012.08.17 ByLyn Views26664
    Read More
  19. C++ string&형 인자에 기본값 주기

    Date2012.07.24 ByLyn Views26031
    Read More
  20. [작성중] 윈도우 32bit, 64bit 프로그래밍시 주의할점

    Date2012.07.16 ByLyn Views27752
    Read More
Board Pagination Prev 1 ... 2 3 4 5 6 7 ... 8 Next
/ 8