Lyn
조회 수 34609 추천 수 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. boostpro 문 닫았네요....

    Date2013.11.02 ByLyn Views24042
    Read More
  2. Visual Studio 2013 새로 추가된 기능 둘러보기

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

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

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

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

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

    Date2013.09.29 ByLyn Views22216
    Read More
  8. VS2013 RC 설치해봄

    Date2013.09.28 ByLyn Views14135
    Read More
  9. 현재 MSDN Download Page

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

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

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

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

    Date2013.06.11 ByLyn Views33212
    Read More
  14. Visual Studio 2012 Update2 Offline 설치

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

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

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

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

    Date2012.08.29 ByLyn Views30506
    Read More
  19. [윈도8] 윈도8 구경1

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

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