본문 바로가기
728x90

컨테이너3

[Algorithm] STL Map과 MultiMap 맵과 멀티맵 맵과 멀티맵은 키/값 쌍을 요소로 관리하는 컨테이너이다. 이 두 컨테이너는 키 값에 대한 특정 정렬 기준을 적용하여 요소를 정렬한다. 맵은 중복을 허용하지 않으며, 멀티맵은 허용한다. 맵과 멀티맵을 사용하기 위해서는 을 인클루드 해야한다. 이는 namespace std 안에 정의 되어 있다. 첫 번째 템플릿 파라미터는 키의 자료형이며 두 번째 템플릿 파라미터는 요소의 값의 자료형이다. 맵/멀티맵의 요소는 2가지 요구 사항을 만족하는 어떠한 Key와 T라는 자료형을 사용할 수 있다. 1. 키와 값은 복사할 수 있거나 이동할 수 있어야 한다. 2. 키는 정렬 기준으로 비교할 수 있어야 한다. 세번째 템플릿 파라미터는 정렬 기준이다. 정렬 기준에서 요소는 아무 영향력이 없으며 동등 검사를 할 때에.. [프로그래밍 공부]/Algorithm 2022. 1. 15.
[Algorithm] STL 리스트(List) 리스트 리스트는 요소들을 양방향 연결리스트의 형태로 관리한다. 리스트를 사용하기 위해서는 를 인클루드 해야한다. 리스트는 namespace std에 정의되어 있다. 리스트 객체는 앵커(anchor)라 불리는 포인터 2개를 제공한다. 이 두 개의 포인터는 첫 번째와 마지막 요소를 가리킨다. 새로운 요소를 삽입하기 위해서는 이 포인터를 조작해야한다. 이로인해 벡터, 데크, 배열과는 다른 특성이 나타난다. 1. 리스트는 임의 접근을 제공하지 않는다. n번째 요소에 접근하기 위해서는 링크를 타고 가야 한다. 양방향 리스트로 되어있기 때문에 뒤에서도 타고 갈 수 있다. 2. 각 위치에서 요소를 삽입하고 제거하는 연산은 빠르다. 다른 요소의 이동이 필요 없기 때문이다. 포인터만 몇개 고치면 바로 삽입/삭제가 가능하.. [프로그래밍 공부]/Algorithm 2022. 1. 15.
[Algorithm] STL 데크(Deque) 데크 ( deque ) 데크는 벡터와 유사하다. 동적 배열에 요소를 관리하며 임의 접근을 허용한다. 또한 벡터의 거의 동일한 인터페이스를 제공한다. 데크와 벡터의 차이는 테크는 동적 배열의 양 끝이 모두 열려있다. 즉, 앞 뒤 모두 삽입/삭제가 가능하다. 데크를 사용하기 위해서는 를 인클루드 해야한다. 또한 namespace std에 정의되어 있다. 데크의 기능 1. 요소의 삽입/삭제는 동적 배열의 시작과 끝 부분 모두 빠르다. 2. 내부 구조는 요소에 접근할 때 하나 이상의 간접 방식을 취하기 때문에 대체로 요소 접근이나 반복자 이동이 약간 더 느리다. 3. 반복자는 특수한 자료형의 스마트포인터여야 한다. 4. 메모리 블록에 대한 크기 제한이 있는 시스템의 경우 데크가 벡터보다 더 많은 요소를 가질 수.. [프로그래밍 공부]/Algorithm 2022. 1. 15.
728x90