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

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

이 글에서는 C++ STL에서 제공하는 deque의 max_size() 함수가 어떤 기능을 수행하는지 예제와 함께 자세히 살펴보겠습니다.

덱(Deque)이란?

덱(Deque)은 Double Ended Queue의 줄임말로, 양쪽 끝(front와 back)에서 모두 요소를 삽입하고 삭제할 수 있는 시퀀스 컨테이너입니다.

일반적인 큐(Queue) 자료구조는 데이터를 뒤쪽(END)에만 삽입하고 앞쪽(FRONT)에서만 삭제할 수 있습니다. 버스 정류장 줄을 생각해 보면 쉽게 이해할 수 있습니다. 새로운 사람은 항상 줄의 맨 뒤에만 추가되고, 맨 앞에 서 있는 사람이 가장 먼저 나가게 됩니다.

반면 덱(Double Ended Queue)은 이름 그대로 양쪽 끝 모두에서 데이터의 삽입과 삭제가 가능하다는 점이 일반 큐와 가장 큰 차이점입니다.

deque max_size() 함수란?

max_size() 함수는 해당 덱이 시스템 환경상 담을 수 있는 최대 요소 개수를 확인할 때 사용됩니다. 이 값은 현재 덱에 실제로 들어 있는 요소 수(size)가 아니라, 메모리 및 시스템 제약에 따른 이론상 최댓값입니다.

문법

dequename.max_size()

반환값 − 덱이 담을 수 있는 최대 요소 개수를 반환합니다.

예제

입력 Deque: 12 13 14 15 16
출력 최대 크기: 4611686018427387903

입력 Deque: F O R C E
출력 최대 크기: 4611686018427387903

풀이 접근 방식

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

  • 덱의 내용을 출력합니다.

  • max_size() 함수를 호출하여 덱의 최대 크기를 확인합니다.

위 접근 방식을 사용하면 덱의 최대 크기를 손쉽게 확인할 수 있습니다.

예제 1

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

int main() {
    // 덱 초기화
    deque<int> dq = { 11, 12, 13, 14, 15 };

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

    // 덱의 최대 크기 출력
    cout << "\n덱의 최대 크기: " << dq.max_size();

    return 0;
}

출력 결과

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

입력 - Deque: 11 12 13 14 15
출력 - 덱의 최대 크기: 4611686018427387903

예제 2

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

int main() {
    // 덱 초기화
    deque<int> dq = { 14, 15, 16, 17, 18, 19, 20 };

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

    // 덱의 최대 크기 출력
    cout << "\n덱의 최대 크기: " << dq.max_size();

    return 0;
}

출력 결과

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

입력 - Deque: 14 15 16 17 18 19 20
출력 - 덱의 최대 크기: 4611686018427387903

정리

deque의 max_size() 함수는 컨테이너가 이론적으로 저장할 수 있는 최대 요소 개수를 반환합니다. 64비트 시스템에서는 일반적으로 4611686018427387903(2⁶² − 1)과 같은 매우 큰 값이 출력되며, 이는 실제 사용 가능한 메모리 양에 따라 달라질 수 있습니다. 참고로 현재 실제로 저장된 요소의 개수를 알고 싶다면 size() 함수를 사용하면 됩니다.