1. string은 다양한 초기화 방법이 있으며, 초기화시 미리 메모리를 할당 받아놓으며

  오버플로에 대비해서 메모리를 계속 할당받아서 문자열 길이에 대한 부담감이 적다

  find 함수로 문자열 내 다양한 검색 방법이 가능하다

  한글이나 한자와 같은 유니코드를 위한 u32string형도 제공한다


2. 스마트 포인터는 포인터가 소멸시 소멸자를 자동으로 호출해주는 포인터이며 가비지 컬렉션을 만들 때 쓸수도있다

   auto_ptr, shread_ptr, unique_ptr이 존재하며

   auto_ptr 은 지시하던 주소를 다른 포인터로 넘기면 소유권이 넘어가 널 포인터가 된다

   shread_ptr은 한 객체를 여러 포인터가 지시 할 수 있으며, STL 알고리즘에서 많이 쓰여서 해당 헤더를 사용할때 좋다

   unique_ptr은 한 객체만 지시 할 수 있으며 move 함수를 이용해야 소유권을 넘길 수 있고 이 포인터로 된 배열을 만들 수 있다


3. 이터레이터는 STL 컨테이너를 위한 일반화 포인터 클래스로서 포인터의 탈을 썻다고 보면 편하다

   STL이 템플릿으로 만들다보니 일반 포인터를 쓸려면 형에 따른 포인터를 만들어야된다

   이게 귀찮으니 용도에 따라 포인터 클래스를 지정하고 템플릿 변수로 각기 다른 형을 가지는 컨테이너는 포인터 클래스를 가지는데

   이를 이터레이터라 부른다


4. STL는 일반화를 위해 함수 오버로딩을 통해 매개변수로 다양한 이터레이터를 요구하여 

   일반화 된 여러 기능을 제공한다


   이터레이터는 5가지 범주로 

   입력(일회성 요소의 값 읽기)

   출력(일회성 출력)

   전방(한 방향으로만 읽기, 출력 가능) 

   전후방(양방향), 임의 접근(양방향에 +, - 로 임의 접근)를 가진다. 상속은 아닌데 기능을 상속한다

   위의 사항은 범주일뿐 이터레이터 종류는 더 다양하다

   

   컨테이너 클래스의 이터레이터는 최소 전후방 이상의 범주를 제공하고

   벡터, 뎈큐는 임의 접근 범주를 제공한다

 

5. 멤버함수를 통한 일반화 함수 호출과 일반 함수 콜의 차이는 있을수도 있고 없을수도 있지만

   멤버 함수를 통한 호출이 더 효율적인 메서드를 제공할때가 있다


6. STL 컨테이너는 자료구조를 기반으로 값을 저장하기 위해 만들어진 일반화형으로

  배열과 같이 직선형태로 된 시퀸스 형으로 결합 컨테이너는 다른 헤더에 있다

  직선 형태여서 범위 삽입, 범위 삭제 등이 가능하다

  또한 컨테이너마다 쓸수없는 일반화 함수도 있는데

  벡터와 같이 배열 형태에서 첫번째 요소를 삽입, 삭제시 모든 요소를 한칸 당기거나 밀어야된다

  이 연산 시간은 요소 갯수에 비례하므로 이런 요소에 비례하는 연산시간을 지닌 함수는 해당 컨테이너에서 금지된다

  

7.  시퀸스 컨테이너 종류로는 

    벡터(배열), 뎈(이중 배열 or 링크드 리스트), 리스트(이중 링크 드 리스트, 좌우), 포워드 리스트(링크 드 리스트, 단방향),

    큐(링크드 리스트 or 배열), 우선순위 큐(벡터), 스택(배열), 어레이 등이 있다


8. 결합 컨테이너 

   값에 키값을 결합하고 그 키를 통하여 검색을 한다. 마치 해쉬와 같으며 해쉬 테이블로 구현한 결합 컨테이너도 존재함

   set은 트리로 구현됬으며 중복값은 결합해버려서 없고 2번째 템플릿 변수 인자로 less랑 grater중에 선택하여 

   트리 좌우로 값을 정렬하는것 처럼 정렬한다 디폴트는 less로 되어있다

   multiset은 값 중복을 허용한다


  map은 key값과 데이터 값을 쌍으로 갖는 노드 기반의 트리 컨테이너로 

  map 템플릿 매개변수로 set과 달리 key값과 데이터 값을 따로 받는다

  multimap은 키값 중복을 허용한다


9. 순서가 결합되지 않은 컨테이너

   트리가 아닌 해쉬 테이블 기반 구현으로 정렬 안하고 그냥 들어오는 순으로 넣으며

   unordered_(set, multiset, map, multimap) 등이 있다


10. 결합 컨테이너의 요소와 범위 접근을 위한 함수도 존재하며

    일종의 집합의 형태로서 차집합, 공집합, 교집합 연산도 제공한다

    해쉬 기반은 집합연산이 될지는 나도 모르는것;