본문 바로가기
728x90

벡터2

[Algorithm] 벡터(Vector)와 리스트(List)의 차이점 벡터(vector) 벡터는 동적배열을 만드는 연산을 수행한다. 따라서 연속적인 메모리를 확보한다. 자신의 요소를 내부의 동적 배열 ( dynamic array )로 복사한다. 임의 접근 연산자를 제공([])하기 때문에 어떠한 값에 접근하든 상수시간이 소요된다 동적배열이기 때문에 배열의 중간에 새로 추가하거나 삭제하면 많은 값이 이동해야하기 때문에 오랜 시간이 걸린다 따라서 중간에 추가 하기보단 뒷부분에 추가한다 ( push_back ) 동적배열이기 때문에 크기의 확장과 축소가 자유롭지만 재할당 비용은 크다. 장점 임의접근을 상수시간에 가능하다. 따라서 읽기에 매우 강하다. 단점 중간에 값을 추가/제거하는 비용이 크다 재할당 비용이 크다 리스트(list) 리스트는 요소들을 양방향 연결리스트의 형태로 관리한.. [프로그래밍 공부]/Algorithm 2022. 1. 15.
[Algorithm] STL 벡터(Vector) 벡터 벡터는 동적배열을 만드는 연산을 수행한다. 벡터를 사용하기 위해서는 를 포함해야 한다. 또한 vector는 namespace std에 존재한다. 벡터의 요소는 어떤 자료형이라도 올 수 있다. 두 번째 템플릿 매개변수로 메모리 모델을 정의할 수 있는데 기본 메모리 모델은 allocator 모델이다. 기능 벡터는 자신의 요소를 내부의 동적 배열로 복사한다. 벡터는 임의 접근을 제공한다. 즉, 위치를 안다면 상수 시간 내에 접근할 수 있다. 동적배열이기 때문에 중간에 데이터를 삽입/삭제 하는 경우 성능이 떨어진다. 벡터는 현재 요소를 저장하기 위한 메모리보다 많은 메모리를 할당한다. 현재 메모리보다 더 많은 요소가 삽입되면 벡터는 재배치를 수행한다. 벡터의 용량은 매우 중요한데 그 이유는 2가지가 있다... [프로그래밍 공부]/Algorithm 2022. 1. 15.
728x90