@ 16. 1 ~ 17. 1/STL
-
map 컨테이너@ 16. 1 ~ 17. 1/STL 2014. 4. 19. 10:07
set은 원소로 key하나만을 저장하지만, map은 원소로 key와 value를 저장한다. 중복 저장은 안되고 항상 중복저장은 set이나 map이나 multi를 사용한다 multiset multimap map은 []연산자를 제공하여 key에 해당하는 원소의 value에 쉽게 접근하거나 변경할 수 있다. 기본 정렬은 less 원소는 pair객체로 저장 map 객체이름; 임시 pair객체를 생성하여 저장 객체이름.insert(pair(key, value)); 또는 직접 pair객체를 생성하여 저장 pair 객체이름(key, value); map객체이름.insert(pair 객체이름); 또한 m[key]=value 초 추가 또는 갱신 할수가 있다.
-
set 컨테이너@ 16. 1 ~ 17. 1/STL 2014. 4. 17. 23:01
set 컨테이너 연관 컨테이너 중 단순한 컨테이너로 key라 불리는 원소의 집합으로 이뤄진 컨테이너이다. 그래서 key(원소)를 저장하는 멤버함수 insert()를 유일하게 제공한다. 모든 연관 컨테이너는 노드 기반 컨테이너이며 균형 이진트리로 구현되므로 균형 이진트리의 모든 특징을 가진다. * 모든 연관 컨테이너는 같은 인터페이스 (생성자, 멤버함수, 연산자)를 제공한다. * 특정 정렬 기준(조건자)에 따라 원소를 자동 정렬한다. 기본 정렬 기준은 less조건자 이다.(오름차순 / 연산의 결과로 모든 노드의 부모노드는 왼쪽 자식보다 크고 오른쪽 자식노드보다 작다) * 반복자의 탐색순서는 inorder 이진 트리 탐색을 사용한다.(중위순회)
-
deque & list 컨테이너@ 16. 1 ~ 17. 1/STL 2014. 4. 16. 23:07
deque 컨테이너는 vector 컨테이너와 기능과 동작이 가장 비슷한 컨테이너로 시퀀스 컨테이너이며 배열기반 컨테이너이다. 둘중에 차이점은 메모리 블록 할당 정책이다. vector의 장점이나 단점인 하나의 메모리 블록 할당 정책은 배열처럼 정수 연산만으로 원소에 접근하고 빠르게 값을 읽고 쓸 수 있다. 하지만 새로운 원소가 추가될 때 메모리 재할당과 이전 원소 복사 문제가 발생하여 성능이 저하될 수 있다. (메모리 삭제 -> 메모리 할당 -> 원소복사 반복..) 그래서 deque는 이처럼 vector의 단점을 해결하기 위해 여러 개의 메모리 블록을 할당하고 사용자에게는 하나의 블록처럼 보이게 한다. 즉 메모리 부족할 때마다 일정한 크기의 새로운 메모리 블록을 할당하여 이전 메모리를 제거하거나 이전 원소..
-
컨테이너 & 반복자 & 알고리즘 & 함수객체@ 16. 1 ~ 17. 1/STL 2014. 4. 10. 23:55
컨테이너 표준 시퀀스 컨테이너 : 컨테이너 원소가 자신만의 삽입 위치를 가지는 컨테이너(vector, deque, list : 선형적) : 삽입되는 순서에 따라 원소의 위치가 결정되고 바뀌지 않습니다. 표준 연관 컨테이너 : 저장 원소가 삽입 순서와 다르게 특정 정렬 기준에 의해 자동 정렬되는 컨테이너(set, multiset, map, multimap : 비선형적) : 삽입 순서와 상관없이 정렬 기준에 따라 원소의 위치가 결정됩니다. 또한 컨테이너는 데이터를 하나의 연속한 메모리 단위로 저장하느냐에 따라 두 가지로 나뉜다. 배열 기반 컨테이너 : 데이터 여러개가 하나의 메모리 단위에 저장(vector, duque) 노드 기반 컨테이너 : 데이터 하나를 하나의 메모리 단위에 저장(list, set, mu..
-
STL list 주요 특징 정리@ 16. 1 ~ 17. 1/STL 2013. 5. 27. 21:08
list의 가장 큰 특징 중 하나는 vector나 deque처럼 원소를 밀어내지않고 노드를 서로 연결하기만 하면 됨. 또한, 노드 기반 컨테이너의 삽입과 제거 동작은 반복자를 무효화시키지 않음. 아래는 예를 든 소스.. deque dq; dq.push_back(10); dq.push_back(20); dq.push_back(30); deque::iterator iter=dq.begin(); deque::iterator iter2; cout
-
STL vector / deque 주요 특징 정리@ 16. 1 ~ 17. 1/STL 2013. 5. 27. 19:46
vector는 임의 접근 반복자를 지원하는 배열 기반 컨테이너입니다. vector의 가장 큰 특징 중 하나는 원소가 하나의 메모리 블록에 연속(배열 기반 컨테이너)하게 저장된다는 것입니다. 원소가 추가되거나 삽입될 때 메모리 재할당이 발생할 수 있음. 그래서 메모리 하당 크기를 알 수 있게 capacity() 멤버 함수가 있고, 한번에 메모리를 할당하고 사용할 수 있는 reserve()멤버 함수가 있다. 원소에 접근하는 것은 at()나 v[i]로 가능하며 둘다 같은 기능이지만, at()은 유효범위를 점검하여 안전하게 원소에 접근하나 접근속도가 낮지만 []은 그 반대이다. 유효점검 x 속도 up 또한 시퀀스 기반 컨테이너 이므로 원소가 서로 상대적인 위치를 유지하므로 가장 앞 요소와 가장 뒤 요소를 참조하..