본문 바로가기
728x90

[프로그래밍 공부]/Data Structure2

[STL] 컨테이너의 분류와 종류(순차 컨테이너, 연관 컨테이너, 비정렬 컨테이너) 컨테이너의 종류는 크게 3가지로 나눌 수 있다. 순차 컨테이너, 연관 컨테이너, 비정렬 컨테이너로 볼 수 있는데 이 안에 포함되는 STL 컨테이너들도 간단히 소개한다. 순차 컨테이너 ( Sequence Container ) 모든 요소를 저장한 순서대로 저장하는 컨테이너이다. 원소를 선형적 순차열(Linear Sequence)에 저장하게 되는데 이로 인해 정렬되지 않는다. 이 위치는 삽입한 시점과 위치에 따라 달라지며 요소의 값과는 독립적이다. 자동적으로 정렬되지 않기 때문에 정렬 알고리즘을 사용하여 수동으로 정렬해야 한다. STL에 선정의된 순서 컨테이너는 배열(array), 벡터(vector), 데크(deque), 양방향 리스트(list), 단방향 리스트(forward_list) 가 있다. Array .. [프로그래밍 공부]/Data Structure 2023. 1. 2.
[STL] 벡터(Vector)와 리스트(List)의 장단점과 차이점 벡터(vector) 벡터는 동적배열을 만드는 연산을 수행한다. 따라서 연속적인 메모리를 확보한다. 자신의 요소를 내부의 동적 배열 ( dynamic array )로 복사한다. 임의 접근 연산자를 제공([])하기 때문에 어떠한 값에 접근하든 상수시간이 소요된다 동적 배열이기 때문에 배열의 중간에 새로 추가하거나 삭제하면 많은 값이 이동해야하기 때문에 오랜 시간이 걸린다 중간에 추가하는 것이 오버헤드가 크기 때문에 보통 뒷부분에 추가한다 ( push_back ) 동적 배열이기 때문에 크기의 확장과 축소가 자유롭지만 재할당 비용은 크다. 장점 임의접근을 상수시간에 가능하다. 따라서 읽기에 매우 강하다. 단점 중간에 값을 추가/제거하는 비용이 크다 재할당 비용이 크다 리스트(list) 리스트는 요소들을 양방향 .. [프로그래밍 공부]/Data Structure 2022. 12. 31.
728x90