💡 퀵 접속: cpp.kr/queue

queue

C++ 표준 라이브러리의 컨테이너 어댑터로, FIFO(First In First Out) 방식으로 동작하는 큐를 구현합니다.

기본 사용법

#include <iostream>
#include <queue>

int main() {
    // 큐 생성
    std::queue<int> q;
    
    // 요소 추가
    q.push(1);
    q.push(2);
    q.push(3);
    
    // 큐 크기
    std::cout << "큐 크기: " << q.size() << std::endl;
    
    // 요소 출력
    std::cout << "큐의 요소들: ";
    while (!q.empty()) {
        std::cout << q.front() << " ";
        q.pop();
    }
    std::cout << std::endl;
    
    return 0;
}

실행 결과:

큐 크기: 3
큐의 요소들: 1 2 3

큐 조작

#include <iostream>
#include <queue>
#include <string>

int main() {
    std::queue<std::string> tasks;
    
    // 작업 추가
    tasks.push("작업 1");
    tasks.push("작업 2");
    tasks.push("작업 3");
    
    // 첫 번째 작업 확인
    std::cout << "다음 작업: " << tasks.front() << std::endl;
    
    // 마지막 작업 확인
    std::cout << "마지막 작업: " << tasks.back() << std::endl;
    
    // 작업 처리
    std::cout << "\n작업 처리:" << std::endl;
    while (!tasks.empty()) {
        std::cout << "처리 중: " << tasks.front() << std::endl;
        tasks.pop();
    }
    
    return 0;
}

실행 결과:

다음 작업: 작업 1
마지막 작업: 작업 3

작업 처리:
처리 중: 작업 1
처리 중: 작업 2
처리 중: 작업 3

큐 복사

#include <iostream>
#include <queue>

int main() {
    std::queue<int> q1;
    
    // 원본 큐에 요소 추가
    for (int i = 1; i <= 3; ++i) {
        q1.push(i);
    }
    
    // 큐 복사
    std::queue<int> q2 = q1;
    
    // 복사된 큐 출력
    std::cout << "복사된 큐의 요소들: ";
    while (!q2.empty()) {
        std::cout << q2.front() << " ";
        q2.pop();
    }
    std::cout << std::endl;
    
    return 0;
}

실행 결과:

복사된 큐의 요소들: 1 2 3

참고사항

  • queue는 std 네임스페이스에 정의되어 있습니다.
  • 기본적으로 deque 컨테이너를 기반으로 합니다.
  • front()로 첫 번째 요소에 접근할 수 있습니다.
  • back()으로 마지막 요소에 접근할 수 있습니다.
  • push()로 요소를 추가하고 pop()으로 요소를 제거합니다.
메서드 설명
push() 요소 추가
pop() 첫 번째 요소 제거
front() 첫 번째 요소 접근
back() 마지막 요소 접근
size() 요소 개수 반환
empty() 큐가 비어있는지 확인
swap() 다른 큐와 내용 교환