본문 바로가기

C++ STL/Part 02 STL 이해8

12장. string 컨테이너 1. string의 주요 인터페이스와 특징 시퀀스 컨테이너이며 배열 기반의 컨테이너(vector와 비슷)이다. string : char 형식의 문자를 관리하는 basic_string 형식 wstring : 유니코드 문자를 관리하기 위한 basic_string 형식 구조 생성자 설명 string s 기본 생성자로 s 생성 string s(sz) sz 문자열로 s 생성 string s(sz, n) sz 문자열에서 n개의 문자로 s 생성 string s(n, c) n개의 c문자로 s 생성 string s(b, e) [b, e) 문자로 s 생성 string s(p1, p2) 포인터 구간 [p1, p2)로 s 생성 멤버함수 설명 s.append(sz) s에 sz를 이어 붙인다 s.assign(sz) s에 asz .. 2021. 6. 22.
11장. 컨테이너 어댑터 1. stack 컨테이너 스택의 기본 컨테이너는 deque 컨테이너다. 템플릿 형식 template // T: 원소형식, Container: 스택에 사용할 컨테이너 형식 class stack 스택 형식 멤버 형식 설명 value_type Container::value_type으로 T 형식이다. size_type Container::size_type으로 인덱스나 원소 개수 등의 형식 container_type Conatiner 형식이며, 기본은 deque 생성자 설명 explicit stack(const Container& = Container()) 기본 생성자를 호출해 stack을 생성, 인자로 받아 stack 생성 공통 멤버 함수 설명 bool empty() const 원소가 없는가? size_type.. 2021. 6. 22.
10장 반복자 1. 반복자의 종류 입력 반복자 : 전방향 읽기(istream) *iter// 읽기 ->// 멤버 읽기 ++// 전방향 이동 ==,!=// 비교 iterator(iter)// 반복자 출력 반복자 : 전방향 쓰기(ostream) *iter = x// 쓰기 ++// 전방향 이동 iterator(iter)(복사생성지)// 반복자 순방향 반복자 : 전방향 읽기 + 전방향 쓰기 // 기존 연산자 *iter, ->, ++, ==, !=, iterator(iter) // 추가된 것 =// 대입 iterator()(기본 생성자)// 반복자 양방향 반복자 : 순방향 반복자 + 역방향 읽기 + 역방향 쓰기 (list, set, multiset, map, multimap) -- // 역방향 이동 임의 접근 반복자 : 양방향.. 2021. 6. 22.
9장 STL 함수 객체 1. 함수 객체 종류 2. 산술 연산 함수 객체 3. 비교 연산 조건자 4. 논리 연산 조건자 5. 바인더 6. 부정자 7. 함수 포인터 어댑터 8. 멤버 함수 포인터 어댑터 2021. 6. 22.
8장 알고리즘 1. 원소를 수정하지 않는 알고리즘 원소의 순서나 값을 변경하기 않고, 읽기만 하는 알고리즘이다. 알고리즘(P:반복자, P:다음 반복자, B:반복자 시작점, E:반복자 끝점) 알고리즘 설명 p = adjacent_find(b,e) p = [b,e) 중 *p == *p+1인 첫 원소를 가르키는 것 p = adjacent_find(b,e, f) p = [b,e) 중 f(*p == *p+1)이 참인 첫 원소를 가르키는 것 n = count(b,e,x) n = [b,e) 중 x의 원소 개수 n = count(b,e,f) n = [b,e) 중 f(*p)이 참인 원소 개수 equal(b,e,b2) [b,e)와 [b2,b2-(b-e))의 모든 원소가 (==) 같은가? equal(b,e,b2,f) [b,e)와 [b2,.. 2021. 6. 22.
7장 연관 컨테이너 1. set 컨테이너 2. multiset 컨테이너 3. map 컨테이너 4. multimap 컨테이너 2021. 6. 22.
6장 시퀀스 컨테이너 1. vector 컨테이너 백터의 주요 인터페이스와 특징 template class Vector { ... } 백터는 원소의 저장 위치가 정해져 있는 배열(원소가 하나의 메모리) 기반의 컨테이너이다. 시퀀스 컨테이너의 특징인 push_back(), pop_back(), front(), back(), insert() 등의 함수가 있다. push_back()시 자동으로 메모리가 할당된다. 생성자 생성자 설명 vector v v는 빈 컨테이너다. vector v(n) v는 기본값으로 초기화된 n개의 원소를 갖는다. vector v(n,x) v는 x값으로 초기화된 n개의 원소를 갖는다. vector v(v2) v는 v2 컨테이너의 복사본(복사 생성자)이다. vector v(b, e) v는 반복자[begin, e.. 2021. 6. 22.
5장 STL 소개 5-1. STL이란 표준 C++ 라이브러리 일부분으로, 필요한 자료구조와 알고리즘을 템플릿으로 제공한다. 각 자료구조와 알고리즘은 반복자로 연결이 되어있다. 구성요소 설명 컨테이너 객체를 저장하는 객체로 컬렉션 or 자료구조라 부른다. 반복자 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 다음 원소 또한 가리키게함. 알고리즘 정렬, 삭제, 검색, 연산 등을 해결하는 일반화된 방법을 제공하는 함수 템플릿 함수객체 함수처럼 동작하는 객체로 opeartor() 연산자를 오버로딩한 객체다. 어댑터 구성 요소의 인터페이스를 변경해 새로운 인터페이스를 갖는 구성요소로 변경함. 할당기 컨테이너의 메모리 할당 정책을 캡슐화한 클래스 겍체, 모든 컨테이너는 자신만의 기본 할당기를 갖는다. STL은 효율성, 재사용.. 2021. 6. 22.