본문 바로가기

■ C++/STL 컨테이너

(2)
[STL 컨테이너] deque 한번에 정리하기 ▶ [STL] deque 컨테이너vector 컨테이너는 컨테이너의 맨 앞에 원소를 추가하는 멤버함수가 없다. 배열의 맨 앞이나 중간에 원소를 추가하려면 나머지 원소들을 모두 뒤로 한 칸씩 이동시켜야한다. vector 컨테이너는 배열 기반으로 구현되어있으므로 원소를 앞이나 중간에 삽입하는 기능이 매우 비효율적으로 동작하게 된다. 또한 배열의 사이즈를 초과하는 경우 사이즈를 늘려서 재할당하고 기존의 값을 복사해주는데, 이 작업도 오버헤드가 크다. deque는 컨테이너의 앞과 뒤로 삽입과 삭제가 자유롭도록 구현되어있다. deque도 배열 기반으로 구현되어있지만, 원소를 앞으로 밀어내거나 뒤로 밀어내는 게 가능해졌기 때문에 vector의 삽입 연산보다는 좀 더 빠르게 동작한다. 컨테이너에 대해 알고싶다면 아래의..
[STL 컨테이너] vector(벡터) 한번에 정리하기 ▶ [STL] vector 컨테이너배열을 선언할 때 입력으로 몇 개의 데이터가 들어올 수 있는지 정확히 알지 못할 때가 있다. 표준 라이브러리에 있는 malloc()으로 배열을 동적 할당해본 경험이 있는가? 오늘 vector를 배우고 나면 특별한 경우가 아닌 이상 일일이 동적 할당해줄 필요가 없다. STL의 vetor는 배열을 동적 할당한 뒤 입력이 너무 많아 할당된 공간을 초과하는 경우 자동으로 사이즈를 늘려주도록 구현되어 있기 때문이다. 이미 구현되어 있는 클래스를 가져다가 사용 방법만 익혀 사용하면 된다. 벡터는 대표적인 시퀀스 컨테이너이다. 컨테이너에 대해 알고싶다면 아래의 링크를 클릭하세요. link : 컨테이너란? vector 컨테이너의 자주 사용되는 생성자와 멤버 함수를 살펴보자. 더 다양한..