구현할 코드 작성 pop_front C++에서 Vector에 대한 연산. 그만큼 pop_front 작업은 Vector에서 첫 번째 요소를 제거하고 나머지 요소의 순서를 유지해야 합니다.

우리는 그것을 알고 std::vector 만 지원 push_back 그리고 pop_back 작업. 두 작업 모두 일정한 시간에 실행됩니다. 그만큼 pop_front 작업은 최소한 O(n) Vector가 어레이에 의해 뒷받침되고 나머지 모든 요소는 순서를 유지하기 위해 왼쪽으로 한 위치만큼 이동해야 하기 때문에 시간이 걸립니다. 총 개수인 경우 pop_front 작업이 더 많을수록 std::list 컨테이너가 선호되어야 하며 이는 양방향 Queue(deque)로 구현됩니다.

 
그래서 pop_front 작업은 선형 시간이 걸리며 Vector에 몇 가지 요소만 포함된 경우에만 호출해야 합니다. 다음은 실현 가능한 구현입니다. pop_front 함수를 사용하여 Vector의 첫 번째 요소를 단순히 지웁니다. vector::erase 기능. 그만큼 vector::erase 함수는 Vector에서 제거할 요소를 가리키는 반복자를 필요로 하며 다음을 호출하여 Vector의 첫 번째 요소에 대한 반복자를 얻을 수 있습니다. vector::begin.

다운로드  코드 실행

결과:

2 3 4 5

 
운 좋게도 Vector의 나머지 요소 순서를 유지할 필요가 없다면 Vector의 마지막 요소를 앞으로 이동하는 것을 포함하는 상수 시간 솔루션이 있습니다. 우리는 의 도움으로 이것을 할 수 있습니다 std::move 기능.

다운로드  코드 실행

결과:

5 2 3 4

그게 다야 pop_front C++에서 Vector에 대한 연산.