씨쁠쁠08

오젼·2022년 6월 21일
0

[cpp]

목록 보기
9/9

ex00

STL

container

  • 객체를 저장하는 객체, 자료구조 라고도 한다. 클래스 템플릿으로 구현되어있다.
    출처: https://blockdmask.tistory.com/67 [개발자 지망생:티스토리]

Sequence Container vs Associative Container

iterator 객체

easyfind 함수

ex01

stack iterator

  • stack, queue, vector등 deque 기반 컨테이너들은 iterator가 없음, 내부 요소에는 오직 pop,push만으로만 접근함. 그 이외의 방법으로 내부의 데이터 꺼내올 수 없음
  • list기반 컨테이너가 iterator를 가지고 있음
    출처: https://enghqii.tistory.com/22 [그냥저냥 휴학생:티스토리]

typedef typename

  • https://lecor.tistory.com/76
  • 중첩 의존 타입 이름을 식별하는 용도에서는 반드시 typename을 사용해야 한다.

    만약 위의 STL iterator 예제에서 typename 키워드 없이 T::const_iterator pos; 만으로 선언을 했다면, 컴파일러는 const_iterator가 T 클래스 내부의 멤버변수일거라고 생각해버릴 수도 있다. 아니, 컴파일러는 이런 경우 기본적으로 타입이 아니라고 가정한다.
    따라서 c++ 컴파일러에게 어떤 키워드는 typedef로 재정의 된 type이라는 것을 알려주기 위해 typename 키워드를 사용해야한다.
    아래 코드는 iterator가 vector<T>의 의존타입이기 때문에 iterator가 type이라는걸 알려주기 위해 typename 키워드를 사용해야한다.

ex02

c.begin() 에서 c가 뭔지

0개의 댓글