1. 기본적으로 vector를 사용하자. vector는 간단한 내부자료구조를 사용하며 랜덤 액세스를 지원한다. 데이터 액세스 작업이 편리하며 유연하다. 데이터 처리속도도 어느 정도 빠르다.
2. 만약 사용자가 원소를 컨테이너의 앞과 끝부분에 자주 삽입/제거한다면 반드시 deque를 사용하자 .. 원소가 제거될때 컨테이너의 메모리 사용량이 줄어들어야만 한다면 역시 deque를 사용해야 한다. vector는 원소의 관리를 위해서 단 하나의 메모리 블록을 사용하지만 deque는 여러 메모리 블록을 사용하기 때문에 더 많은 원소를 관리할 수 있다.
3. 만약 원소의 제거,삽입,이동을 컨테이너의 중간 위치에서 자주 한다면 list를 사용하는 것을 고려해야 한다. 랜덤액세스는 지원하지 않기 때문에 성능상 제약을 받을 것이다.
※ list는 원소들이 컨테이너에 속해 있는 한 원소를 참조하는 반복자를 무효화시키지 않는다.
vector의 경우 용량을 넘어간다면 모든 반복자와 포인터, 그리고 레퍼런스들을 무효화시킨다.
deque의 경우 사이즈가 변경될때, 모든 반복자와 포인터와 레퍼런스들을 무효화된다.
4. 사용자가 예외에 대해서 각각의 동작들이 성공하거나 아무런 영향도 가지지 않는 컨테이너가 필요하다면 list나 연관 컨테이너를 사용해야 한다.
5. 사용자가 특정 기준에 따라 자주 원소를 검색해야 한다면 set,multiset을 사용해야 한다.
6. 해쉬테이블의 검색 속도는 바이너리 트리에 비해 5배에서 10배정도 빠르다. 사용가능하다면 해쉬 테이블이 표준이 아니더라도 사용을 고려해 보아야 한다.
7. key/value의 쌍을 처리하기 위해선 map or multimap을 사용해야 한다. 연관배열->map, 사전->multimap
2. 만약 사용자가 원소를 컨테이너의 앞과 끝부분에 자주 삽입/제거한다면 반드시 deque를 사용하자 .. 원소가 제거될때 컨테이너의 메모리 사용량이 줄어들어야만 한다면 역시 deque를 사용해야 한다. vector는 원소의 관리를 위해서 단 하나의 메모리 블록을 사용하지만 deque는 여러 메모리 블록을 사용하기 때문에 더 많은 원소를 관리할 수 있다.
3. 만약 원소의 제거,삽입,이동을 컨테이너의 중간 위치에서 자주 한다면 list를 사용하는 것을 고려해야 한다. 랜덤액세스는 지원하지 않기 때문에 성능상 제약을 받을 것이다.
※ list는 원소들이 컨테이너에 속해 있는 한 원소를 참조하는 반복자를 무효화시키지 않는다.
vector의 경우 용량을 넘어간다면 모든 반복자와 포인터, 그리고 레퍼런스들을 무효화시킨다.
deque의 경우 사이즈가 변경될때, 모든 반복자와 포인터와 레퍼런스들을 무효화된다.
4. 사용자가 예외에 대해서 각각의 동작들이 성공하거나 아무런 영향도 가지지 않는 컨테이너가 필요하다면 list나 연관 컨테이너를 사용해야 한다.
5. 사용자가 특정 기준에 따라 자주 원소를 검색해야 한다면 set,multiset을 사용해야 한다.
6. 해쉬테이블의 검색 속도는 바이너리 트리에 비해 5배에서 10배정도 빠르다. 사용가능하다면 해쉬 테이블이 표준이 아니더라도 사용을 고려해 보아야 한다.
7. key/value의 쌍을 처리하기 위해선 map or multimap을 사용해야 한다. 연관배열->map, 사전->multimap