STL : 표준 템플릿 라이브러리
기존의 자료구조를 기반으로 장점들을 취해서 만들어진 일반화 프로그래밍
컴파일러마다 버전이 다르다.
컨테이너: 박스와 같은것(비슷한 성질의 물품을 담아 놓은것),비슷한 성질의 객체들을 모아서 관리하는것
- 순차컨테이너 : 삽입과 삭제가 비슷한것들을 모아놓은것 (일반적인 삽입과 삭제 )
* 덱 -> 순차컨테이너에 있음
단점 : 삽입과 삭제를 맞게 사용하여야한다.
삽입과 삭제가 일반화되어있기때문이다.
- 정렬연관 컨테이너 : 기본적으로 오름차순, 내부적으로 (페어->퍼스트와 세컨드 자료형 들을 가지고있다(맵에만있음)
first는 상수 로서 변경불가능, second 변경가능
맵 set multi map multi set 들은 노드 기반
빠른 접근도 가능하다 (단first의 값을 안다면)
정렬과 찾기에 특화되어있다.
- 어댑터 컨테이너 : 삽입 삭제 방법이 정해져있다. 외부에서 조작할수없으므로 컨테이너에 정해진 자료구조에 맞게 조작되어진다.
큐,스택 우선순위 큐 .
넣고 관리만 할뿐 빼주지는 않는다.
@ 세종류의 컨테이너이 가장 큰 차이는 삽입 삭제 방법
* 트리기반은 안정을 기본으로 함
* 노드기반의 STL 은 최소한의 안정만 제공함
* 리스트는 [] 연산자를 제공하지않는다.
* 벡터같은 경우는 랜덤 엑세스(자유접근)이 가능하기 때문에 []인덱스 지정연산자를 제공한다.
& 벡터 리스트 차이점 ?
& 맵이 내부구조로 어떻게 되있는가?