더북(TheBook)

2.4.3 원소를 추가하고 제거하기

vector에서 순차열의 끝에 원소 하나를 추가하고 삭제하는 push_back(), pop_back() 멤버를 deque 컨테이너도 제공한다. 이들 멤버는 동작하는 방식도 같다. deque 컨테이너에는 순차열의 시작에도 이들 멤버와 유사한 push_front(), pop_front() 함수도 정의되어 있다.

std::deque<int> numbers {2, 3, 4};
numbers.push_front(11);  // numbers의 원소: 11 2 3 4
numbers.push_back(12);   // numbers의 원소: 11 2 3 4 12
numbers.pop_front();     // numbers의 원소: 2 3 4 12

deque에는 vector에서 제공하는 emplace_back() 멤버도 있으며 순차열의 시작에 새 원소를 생성해서 추가하는 emplace_front()도 있다. vector와 마찬가지로 deque의 내부에서 원소들을 추가하거나 제거할 때 emplace()insert()를 사용할 수 있다. 이러한 작업은 항상 기존 원소들을 이동해야 하므로 비교적 느리게 처리된다.

vector에서 설명한 모든 insert() 함수 멤버는 deque 컨테이너에서도 이용할 수 있다. deque에 원소들을 삽입하면 deque의 모든 반복자를 무효화하므로 반복자를 반드시 다시 생성해야 한다. dequeerase() 멤버도 vector와 동작 방식이 같다. deque 컨테이너에서 clear()를 호출하면 모든 원소를 제거한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.