1. 특징 어떤 자료형도 넣을 수 있는 동적 배열 원시 자료형(primitive data) 클래스 포인터 모든 요소가 연속된 메모리 공간에 위치 자동으로 메모리를 관리 임의의 요소에 접근 가능 (인덱스 사용 가능) vector는 operator[]를 사용할 수 있지만, STL 컨테이너를 순회할 때는 반복자(iterator)를 사용하는 것이 표준 방식 2. [장점] 순서에 상관없이 요소에 임의적 접근 가능 제일 마지막 위치의 요소를 빠르게 삽입 및 삭제 가능 (메모리 재할당이 없을 시) 3. [단점] 중간에 요소 삽입 및 삭제는 느리다. 재할당 및 요소 복사에 드는 비용이 크다. 4. 벡터 변수 생성 방법 빈 벡터의 생성 // std::vector std::vector scores; std::vector ..
1. 종류 벡터 (Vector) 맵 (Map) 셋 (Set) 스택 (Stack) 큐 (Queue) 리스트 (List) 덱 (Deque) 2. STL 컨테이너의 목적 템플릿 기반 모든 컨테이너에 적용되는 표준 인터페이스 std 알고리즘은 많은 컨테이너에서 작동한다. 템플릿 프로그래밍 기반 메모리 자동 관리 3. 모든 컨테이너에 같은 인터페이스가 적용되는 것은 이상하다. 극단적으로 OOP를 추구한 사례에 해당한다. vector와 list의 push_back이 이상하다. 4. 메모리 단편화 빈번한 메모리 재할당은 메모리 단편화를 초래한다. 메모리를 내부적으로 100번을 재할당하든 뭐든 강제하지 않는다. 가상 메모리를 지원하지 않는 플랫폼에서 프로그램을 실행할 때 문제가 생긴다. 메모리 단편화 때문에 애플리케이..