Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL deque의 push_back() 함수 완벽 가이드


이 글에서는 C++ STL에서 deque의 push_back() 함수가 어떻게 동작하는지 그 기능과 사용법을 예제와 함께 살펴봅니다.

덱(Deque)이란 무엇인가?

덱(Double Ended Queue, 데크)은 양쪽 끝에서 모두 요소의 삽입과 삭제가 가능한 시퀀스 컨테이너입니다. 일반적인 큐(Queue) 자료구조는 데이터를 뒤쪽(Rear)에만 삽입할 수 있고 앞쪽(Front)에서만 삭제할 수 있습니다.

버스 정류장의 줄을 떠올려 보면 이해하기 쉽습니다. 사람들은 줄의 맨 뒤에만 새로 들어설 수 있고, 맨 앞에 서 있는 사람이 가장 먼저 나갑니다. 반면 덱(Double Ended Queue)은 이름 그대로 양쪽 끝 어디에서든 데이터의 삽입과 삭제가 모두 가능한 자료구조입니다.

deque push_back() 함수란?

push_back() 함수는 덱의 맨 뒤(끝)에 새로운 요소를 삽입할 때 사용합니다.

구문(Syntax)

dequename.push_back(value)

매개변수(Parameters)

value — 덱의 맨 뒤에 삽입할 새로운 요소를 의미합니다. 이 값은 반드시 덱에 저장된 요소와 동일한 데이터 타입이어야 합니다.

예시

입력 Deque — 45 46 47 48 49

출력 새 Deque — 45 46 47 48 49 50

입력 Deque — B L A N K E T

출력 새 Deque — B L A N K E T S

적용할 수 있는 접근 방식

  • 먼저 덱을 선언하고 초기화합니다.

  • 덱의 현재 상태를 출력합니다.

  • push_back() 함수를 호출하여 새 요소를 추가합니다.

  • 삽입 후 변경된 덱을 다시 출력합니다.

위 접근 방식을 활용하면 덱의 맨 뒤에 손쉽게 새 요소를 추가할 수 있습니다. 단, 새 요소의 데이터 타입은 반드시 덱의 요소 타입과 같아야 합니다.

예제 1: 정수형 덱에 요소 추가하기

// deque push_back( ) 함수의 동작을 보여주는 C++ 코드
#include <iostream>
#include <deque>
using namespace std;

int main() {
    // 덱 초기화
    deque<int> dq = { 71, 75, 73, 76, 77 };

    // 덱 출력
    cout << "Deque: ";
    for (auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";

    // push_back( ) 함수로 새 요소 삽입
    dq.push_back(78);

    // 새 요소 삽입 후 덱 출력
    cout << "\n새 Deque: ";
    for (auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";

    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

입력 - Deque: 71 75 73 76 77
출력 - 새 Deque: 71 75 73 76 77 78

예제 2: 다른 값으로 확인하기

// deque push_back( ) 함수의 동작을 보여주는 C++ 코드
#include <iostream>
#include <deque>
using namespace std;

int main() {
    // 덱 초기화
    deque<int> dq = { 64, 65, 66, 69, 68 };

    cout << "Deque: ";
    for (auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";

    // push_back( ) 함수로 새 요소 삽입
    dq.push_back(67);

    // 새 요소 삽입 후 덱 출력
    cout << "\n새 Deque: ";
    for (auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";

    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

입력: 64 65 66 69 68
출력: 64 65 66 69 68 67

정리

C++ STL의 deque push_back() 함수는 덱의 맨 뒤에 새로운 요소를 추가하는 가장 기본적이고 효율적인 방법입니다. 평균적으로 상수 시간(O(1))에 삽입이 이루어지기 때문에, 양방향으로 데이터를 관리해야 하는 상황에서 매우 유용하게 활용됩니다. 반대 방향인 맨 앞에 요소를 추가하려면 push_front() 함수를 사용하면 됩니다.