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

C++ STL queue::empty()와 queue::size() 함수 완벽 가이드


이 글에서는 C++ STL의 queue::empty()queue::size() 함수의 동작 방식, 문법, 그리고 실제 코드 예제를 자세히 살펴보겠습니다.

C++ STL에서 큐(Queue)란 무엇인가?

큐는 C++ STL에 정의된 간단한 시퀀스 자료구조로, 데이터를 FIFO(First In First Out, 선입선출) 방식으로 삽입하고 삭제합니다. 큐의 데이터는 연속적인 방식으로 저장되며, 요소는 큐의 뒤쪽(rear)에서 삽입되고 앞쪽(front)에서 제거됩니다. C++ STL에는 이러한 큐의 동작 방식을 그대로 구현한 템플릿이 미리 정의되어 있어, 별도의 구현 없이도 손쉽게 큐를 활용할 수 있습니다.

queue::empty()란?

queue::empty()는 C++ STL의 내장 함수로, <queue> 헤더 파일에 선언되어 있습니다. 이 함수는 해당 큐 컨테이너가 비어 있는지 여부를 확인하는 데 사용됩니다. 반환 값은 true 또는 false이며, 큐가 비어 있으면(크기가 0이면) true를, 큐에 요소가 하나라도 있으면 false를 반환합니다.

문법

myqueue.empty();

이 함수는 매개변수를 받지 않습니다.

반환 값

연관된 큐 컨테이너의 크기가 0이면 true를, 그렇지 않으면 false를 반환합니다.

예제

입력: queue<int> myqueue = {10, 20, 30, 40};
      myqueue.empty();
출력:
      False

입력: queue<int> myqueue;
      myqueue.empty();
출력:
      True

실제 코드 예제

#include <iostream>
#include <queue>
using namespace std;
int main(){
    queue<int> Queue;
    Queue.push(10);
    Queue.push(20);
    Queue.push(30);
    Queue.push(40);
    // 큐가 비어 있는지 확인
    if (Queue.empty()){
        cout<<"Queue is empty";
    }
    else{
        cout <<"Queue is not empty";
    }
    return 0;
}

출력 결과

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

Queue is not empty

queue::size()란?

queue::size() 역시 C++ STL의 내장 함수로, <queue> 헤더 파일에 선언되어 있습니다. 이 함수는 해당 큐 컨테이너의 크기를 확인하는 데 사용됩니다. 반환 값은 unsigned int 타입으로, 큐 컨테이너의 크기, 즉 큐에 저장된 요소의 개수를 의미합니다. 큐가 비어 있거나 요소가 하나도 없는 경우에는 0을 반환합니다.

문법

myqueue.size();

이 함수는 매개변수를 받지 않습니다.

반환 값

함수를 호출한 큐 컨테이너의 크기를 unsigned int 타입으로 반환합니다.

예제

입력: queue<int> myqueue = {10, 20, 30, 40};
      myqueue.size();
출력:
      4

입력: queue<int> myqueue;
      myqueue.size();
출력:
      0

실제 코드 예제

#include <iostream>
#include <queue>
using namespace std;
int main(){
    queue<int> Queue;
    Queue.push(10);
    Queue.push(20);
    Queue.push(30);
    Queue.push(40);
    cout<<"size of Queue is : "<<Queue.size();
    return 0;
}

출력 결과

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

size of Queue is : 4

정리

queue::empty()는 큐가 비어 있는지를 불리언 값으로 확인하는 함수이고, queue::size()는 큐에 저장된 요소의 개수를 숫자로 반환하는 함수입니다. 두 함수 모두 매개변수를 받지 않으며, O(1)의 상수 시간 복잡도로 수행됩니다. 특히 큐에서 요소를 꺼내기 전에 empty()로 큐가 비어 있는지 먼저 확인하면, 빈 큐에 대해 pop()을 호출할 때 발생할 수 있는 정의되지 않은 동작을 예방할 수 있으므로 안전한 큐 연산을 위해 두 함수를 함께 활용하는 것이 좋습니다.