[STL]컨테이너 선택

프로그래밍/C/C++ 2014. 2. 9. 14:12

컬렉션 내의 값들을 어떤 방식으로 접근하는가에 따라 컨테이너 선택이 달라져야 합니다.

 

▶ 컬렉션 내에 임의 접근이 자주 필요할시

    vector와 deque를 사용하고, 순차접근만으로 충분하다면 다른 컨테이너를 써도 무방합니다.

 

▶ 컬렉션 내의 값들을 순서 매길 필요가 있을시

    Set을 사용하는게 좋습니다. 매순간 순서가 필요없고 특정 순간에 필요하다면 list혹은 vector에 값을 대입하고 필요시

    정렬하는 방법을 사용하는 것이 좋습니다.

 

▶ 데이터 구조 내에서 유지되는 값들의 순서가 필요할시

     stack이나 list를 선택하는것이 좋습니다.

 

▶ 실행중에 데이터 구조가 광범위 하게 변활시

    list와 set을 선택하는 것이 좋습니다.  vector, deque는 컬렉션으로 부터 원소들을 제거한 뒤에 데이터 이동이

    이루어지기 때문에 부하의 원인이 됩니다.

 

▶ 어떤 값이 컬렉션 내에 포함되어 있는지 확인하는 빈도가 높으시

    set이나 map을 선택하는 것이 좋습니다.

 

▶ 컬렉션에 대해 인덱싱이 필요할시

    vector, deque를 사용하고, 키 값이 어떤 순서가 있는 데이터 형이라면(문자, 문자열, 사용자 정의 데이터 타입)

    map을 사용합니다.

 

▶ 두개 이상의 수열을 하나로 합치는 일이 자주 발생할 경우

    set이나 list가 유용합니다. 어떤 것을 선택할지는 순서가 유지되는가의 여부에 따라 결정하는 것이 좋습니다.

 

▶ 컬렉션 중간에서 데이터 삽입, 삭제가 자주 이루어질시

    list가 최선의 선택이며, 앞쪽에서 삽입된다면, deque , list 끝에서 삽입과 삭제가 이루어진다면 stack, deque를 사용하는 것이 좋습니다.

'프로그래밍 > C/C++' 카테고리의 다른 글

비트 연산자  (0) 2014.02.12
함수 포인터  (0) 2014.02.12
[STL] 제네릭 알고리즘 Generic Algorithm  (0) 2014.02.09
[STL] 정렬 컨테이너1 (set, multiset, map, multimap)  (0) 2014.02.09
[STL] 제네릭(generic) 기초 정리  (0) 2014.02.09