목록STL (9)
승쨩개발공부
vector 배열 기반의 컨테이너 배열 기반이기 떄문에 인덱스 접근이 가능하다. (탐색의 용이) 원소 삽입/삭제 시에는 앞에서부터 할 수 없으며, 맨 뒤에서만 가능하다. -> 중간 삽입 및 삭제 시에는 삽입 위치의 확보, 삭제 위치의 활용을 위해 -> 해당 원소 이후 포인터의 이동이 발생한다. (선형 시간 O(n)) -> 단 맨 끝에서 삽입 및 삭제는 포인터 이동이 필요 없다.(상수 시간 O(1)) -> 배열 기반이기 떄문에 메모리 개수를 넘어서는 삽입의 시도가 있을 경우 -> 배열의 재할당 및 기존 원소들의 복사가 발생한다. -> vector의 원소를 삭제하여 원소가 존재하던 메모리 공간은 남아 있는다. -> 결론적으로 vector는 삽입 삭제가 불리하다고 할 수 있다. vector의 사용법 -> ve..
vector 동적 배열을 기반으로하는 컨테이너 동적 배열 기반이므로 인덱스 접근이 가능하다 (탐색이 좋다) 원소를 삽입할 경우 앞에서는 할 수 없으며, 뒤에서부터 삽입해 나간다. 중간 삽입 및 삭제 시에는 삽입공간의 확보, 삭제 공간의 활용을 위해 해당 인덱스 이후 모든 원소들을 포인터 이동해야한다. (선형 시간) 단, 맨 끝에서 삽입 및 삭제 시에는 확보 및 활용할 필요가 없다. (상수 시간) 동적 배열이므로 배열의 크기를 넘어서는 삽입의 시도가 있을 경우 배열의 재할당 및 복사가 발생한다. 또한 원소를 삭제한다 하여도 배열의 크기는 줄어들지 않는다. -> 삽입 및 삭제 불리 -> 탐색이 용이 list 노드를 기반으로하는 컨테이너 더블 링크드 리스트로 구현이되어있다. 각 노드는 연속적인 메모리에 나열된..
STL Standard Template Library의 약자. -> 표준에 등록된 템플릿의 집합. C++에서 제공하는 라이브러리의 일종으로 프로그래밍에 필요한 자료구조 및 알고리즘을 클래스 템플릿화하여 제공한다. STL 구성 요소 ##1. 컨테이너 데이터를 저장하는 객체. 자료 구조를 저장하는 객체. 컨테이너의 종류 배열을 기반으로하는 vector 노드를 기반으로하는 list 트리를 기반으로하는 map 구분 기준 #1. 원소 배치 표준 시퀀스 컨테이너 -> 선형적인 구조 (일렬로 줄 지을 수 있는 구조) -> 특정 원소를 기준으로 앞, 뒤를 판단할 수 있다. ex) vector, list 표준 연관 컨테이너 -> 비 선형적인 구조 (일렬로 줄 지을 수 없는 구조) -> 특정 원소를 기준으로 앞, 뒤를 판..