Search

'2011/04'에 해당되는 글 1건

  1. 2011.04.12 C++ STL 컨테이너의 성격

C++ STL 컨테이너의 성격

Study 2011.04.12 16:35 Posted by 몽백작

연속 메모리(continuous-memory) 컨테이너(배열 기반 컨테이너 - array-based container - 라고도 합니다)는 동적 할당된 하나 이상 - 대개 하나 - 의 메모리 단위(chunk)에다가 데이터 요소를 저장해 두는 컨테이너입니다. 각 메모리 단위는 하나 이상의 요소를 담고 있지요. 새 요소가 삽입되거나 이미 있던 요소가 지워지면(erase), 같은 메모리 단위에 있던 다른 요소들은 앞 혹은 뒤로 밀려나면서 새 요소가 삽입될 공간을 만들든지, 지워진 공간을 메웁니다. 이러한 "밀어내기"때문에 수행 성능의 발목을 잡을 수 있고, 예외 안전성(exception safety)에도 영향을 미칩니다. 표준 연속 메모리 컨테이너는 vector, string, deque입니다. 비표준 컨테이너인 rope 역시 연속 메모리 컨테이너입니다.

노드 기반(node-based) 컨테이너는 동적 할당된 하나의 메모리 단위에다가 하나의 요소만을 저장합니다. 컨테이너 요소를 삽입 혹은 삭제했을 때 노드의 포인터만이 영향을 받지, 노드의 내용은 그대로입니다. 따라서, 삭제나 삽입이 일어났다고 해도 나머지 요소들이 밀려난다든지 하는 일이 없습니다(해당 노드가 없어지고 생기고 하는 것이니까요). 연결 리스트를 나타내는 컨테이너, 즉 list나 slist가 노드 기반이고, 표준 연관 컨테이너 모두가 노드 기반입니다(이것들은 전형적으로 균형 트리(balanced tree)로 구현되어 있습니다). 비표준인 해쉬 컨테이너도 노드 기반으로 구현되어 있습니다.

출처: Scott Meyer 저, 곽용재 편역, "이펙티브 STL(Effective STL)", 정보문화사
저작자 표시 비영리 변경 금지
신고

'Study' 카테고리의 다른 글

C++ STL 컨테이너의 성격  (0) 2011.04.12
Review of "MP, NLP, DLP"  (0) 2009.10.14
Review of "Single Path Flooding Chain"  (0) 2009.10.14
Review of "Geocasting (multicast)"  (0) 2009.10.13
ns-2 tutorial 발표자료  (0) 2009.10.13
Review of "IGF"  (0) 2009.10.06



 

티스토리 툴바