해당 글은
공동환 저자뇌를 자극하는 C++ STL도서 기반으로 작성되었습니다.
들어가기에 앞서..
C++ 공부하면서 대부분의 책들은 STL에 대해 그냥 이런게 있다~ 하고 넘어가는 경우가 많습니다.
저 또한 2가지정도의 책을 공부하면서 느꼈구요. 하지만, 알고리즘을 공부하려 하면서 STL에 대해 공부할 필요성이 생겨 공부하게 되었습니다.
다만, 인터넷에 올라오는 자료로는 조금 부족한듯 싶어 책을 구매하여 공부를 진행했는데, 처음 배우는데 굉장히 큰 도움이 된 것 같습니다. 이 글은 뇌를 자극하는 C++ STL을 바탕으로 작성할 예정입니다.
물론 공부하면서 설명이 부족했다고 느꼈던 부분이나, 다른 도움될만한 내용이 있다면 조금 더 가미해서 작성하겠습니다.
Github 코드
제가 공부하면서 연습하고 작성했던 코드들입니다. 책에 있는 웬만한 코드는 다 있는것 같습니다.
글 작성하면서 대부분 코드를 첨부하겠지만, 따로 코드가 필요하실 분들이 계실까봐 남깁니다.
추가로 긴 글을 일일히 읽기 어려우신 분들은 깃허브 코드만 보시는걸 추천합니다.
물론 파일 하나하나 설명되어 있는 md 파일은 없지만(이건 곧 추가 하도록 하겠습니다 ㅎㅎ)
코드에 있는 주석에 설명에 관한 요약된 내용이 있습니다.
해당 코드는 다음과 같은 환경에서 실행되었습니다.
개발 환경 : M2 Macbook Pro 14,Sonoma 14.0
IDE :CLion
Language Standard Version :C++11, C++17
STL이란?
STL은 표준 C++ 라이브러리의 일부분으로 Standard Template Library의 약자이다.
STL은 프로그램에 필요한 자료구조와 알고리즘을 템플릿으로 제공하는 라이브러리이다.
또한, 자료구조와 알고리즘은 서로 반복자라는 구성 요소를 통해 연결한다.
목차
Chap01 : 연산자 오버로딩
Chap02 : 함수 포인터
함수 포인터란
함수포인터의 종류
클라이언트 코드와 서버코드
Chap03 : 함수 객체
함수 객체란
함수 객체 구현
Chap04 : 템플릿
함수 템플릿
클래스 템플릿
Chap05 : STL 소개
STL이란
STL을 한눈에
Chap06 : 시퀀스 컨테이너
vector 컨테이너
deque 컨테이너
list 컨테이너
Chap07 : 연관 컨테이너
set 컨테이너
multiset 컨테이너
map 컨테이너
multimap 컨테이너
Chap08 : 알고리즘
원소를 수정하지 않는 알고리즘
원소를 수정하는 알고리즘
제거 알고리즘
변경 알고리즘
정렬 알고리즘
정렬된 범위 알고리즘
수치 알고리즘
Chap09 : STL 함수 객체
함수 객체의 종류
산술 연산 함수 객체
비교 조건 연산자
논리 조건 연산자
바인더
부정자
함수 포인터 어댑터
멤버 함수 포인터 어댑터
Chap10 : 반복자
반복자의 종류
X::iterator와 X::const_iterator
X::reverse_iterator와 X::const_reverse_iterator
삽입 반복자
입/출력 스트림 반복자
반복자 특성과 보조함수
Chap11 : 컨테이너 어댑터
stack 컨테이너
queue 컨테이너
priority_queue 컨테이너
Chap12 : String 컨테이너
string의 주요 인터페이스와 특징
string의 주요 멤버 함수 정리