deulee의 개발 노트

고정 헤더 영역

글 제목

메뉴 레이어

deulee의 개발 노트

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (112)
    • C++ (79)
      • C++98 (36)
      • Modern C++(11, 14, 17, 20) (34)
      • C++ STL (9)
    • 데이터베이스 (0)
    • 컴퓨터 구조 (0)
    • 운영체제 (0)
    • 읽은 책 (0)
    • 네트워크 (0)
    • 알고리즘 (31)
      • 이론 (5)
      • 문제 (26)
    • 잡글 (1)
      • 아이디어 (0)
      • 해야할 것 (0)
      • 목표 (0)
      • 정보글 (1)
    • git (0)

검색 레이어

deulee의 개발 노트

검색 영역

컨텐츠 검색

STL

  • [STL] 반복자(6) - 상수 반복자

    2023.08.23 by deulee

  • [STL] 반복자(5) - 속성

    2023.08.23 by deulee

  • [STL] 반복자(1)

    2023.08.23 by deulee

  • [STL] 컨테이너

    2023.08.23 by deulee

  • [STL] STL의 구조

    2023.08.23 by deulee

[STL] 반복자(6) - 상수 반복자

반복자도 상수성을 가질 수 있다. 비상수 반복자는 레퍼런스를 리턴하므로 *연산자와 함께 대입식의 좌변에 사용할 수 있지만, 상수 반복자는 상수 레퍼런스를 리턴하므로 대입식의 좌변에 놓아 값을 변경할 수 없고 오로지 읽을 수만 있다. vector vi; vector::const_iterator cit = vi.begin(); 상수 반복자는 위와 같이 선언하며 다음의 특징을 가지고 있다. 가리키는 대상이 상수다. 반복자 그 자체는 상수가 아니라서 전후로 이동이 가능하다. 그리고 위의 예제를 보면 비상수 반복자로 할당한 것이 보일텐데, 이것이 가능한 이유는 읽고 쓰기가 가능한 반복자를 받아 읽기 기능만 사용할 것이므로 전혀 위험하지 않기 때문이다. 하지만 반대로 비상수 반복자에 상수 객체의 반복자를 할당하려하..

C++/C++ STL 2023. 8. 23. 16:54

[STL] 반복자(5) - 속성

알고리즘 함수들은 반복자만 인수로 전달받을 뿐 컨테이너에 대해서는 알지 못한다. 그럼 알고리즘은 어떻게 반복자의 특성을 파악할 수 있을까? 사실 함수 입장에서는 어떠한 정보도 알 수 없다. 심지어 반복자인지 정수인지 조차도 분간할 수 없다. 하지만, 이를 분간하는 것을 필요로 하는 상황이 분명이 있기 때문에, STL은 반복자의 특징을 표현하기 위해 iterator_traits 클래스와 이 클래스를 보조하는 여러 가지 타입 정보를 정의한다. template struct iterator_traits { typedef typename Iter::iterator_category iterator_category; // 반복자의 종류 typedef typename Iter::value_type value_type;..

C++/C++ STL 2023. 8. 23. 16:43

[STL] 반복자(1)

C언어에서 가장 핵심적인 문법은 '포인터'를 선택할 것이다. 그리고 STL의 가장 핵심적인 요소는 바로 '반복자'이다. 반복자와 포인터의 역할은 사용 방법이 비슷하지만 훨씬 더 '일반화'되어 있어 임의의 컨테이너와 함께 사용할 수 있다. 반복자 이전의 컨테이너 순회 방법 1. 배열 순회하기 void Print(int* ar, int num) { for (int i = 0; i < num; i++) std::cout

C++/C++ STL 2023. 8. 23. 13:02

[STL] 컨테이너

컨테이너 '컨테이너(Container)'는 무엇인가를 저장한다는 의미로 타입이 같은, 즉 동질적인 객체의 집합을 저장하고 관리하는 역할을 한다. 예를 들면 '배열', '연결 리스트', '스택'등이 있다. 그리고 자료를 '저장하는 방식'과 삽입, 정렬, 삭제하는 '관리하는 방식'에 따라 '세 가지' 부류로 구분된다. 시퀀스 컨테이너 (Sequence Container) 자료의 선형적인 집합이며 자료를 저장하는 기본 임무에 충실한 가장 일반적인 컨테이너. 삽입된 자료를 무조건 저장함 시퀀스의 임의 위치에 원하는 요소를 마음대로 삽입, 삭제 가능 '벡터', '리스트', '데크' 세 가지의 시퀀스 컨테이너가 제공된다. 연관 컨테이너 (Associative Container) 일정한 규칙에 따라 자료를 조직화하여..

C++/C++ STL 2023. 8. 23. 12:24

[STL] STL의 구조

STL은 'Standard Template Library'의 약자로 라이브러리이되 템플릿의 집합을 제공하는 라이브러리이며 현재 C++의 표준으로 채택되어 있다. STL은 '일반화의 개념'에 의해 자주 사용되는 자료 구조와 알고리즘을 제공한다. 그럼 구조가 어떻게 이루어져 있는지 확인해보도록 하자. STL의 구조 STL은 다음의 여섯 가지의 구성 요소로 이루어져 있다. 이 중 '컨테이너', '알고리즘', '반복자'가 가장 중요한 세 가지 요소이다. 앞으로 차례대로 설명해 보도록 하겠다.

C++/C++ STL 2023. 8. 23. 12:24

추가 정보

인기글

최신글

페이징

이전
1
다음
TISTORY
deulee의 개발 노트 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바