QQueue Class

template <typename T> class QQueue

QQueue 클래스는 큐를 제공하는 일반 컨테이너입니다. 더 보기...

헤더: #include <QQueue>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
상속합니다: QList

참고: 이 클래스의 모든 함수는 재진입됩니다.

공용 함수

T dequeue()
void enqueue(const T &t)
T &head()
const T &head() const
void swap(QQueue<T> &other)

상세 설명

QQueue<T>는 Qt의 일반 컨테이너 클래스 중 하나입니다. 같은 유형의 항목에 대한 큐 데이터 구조를 구현합니다.

큐는 선입선출(FIFO) 구조입니다. 항목은 enqueue()를 사용하여 큐의 꼬리에 추가되고 dequeue()를 사용하여 헤드에서 검색됩니다. head () 함수는 헤드 항목을 제거하지 않고도 헤드 항목에 액세스할 수 있습니다.

예제:

QQueue<int> queue;
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
while (!queue.isEmpty())
    cout << queue.dequeue() << endl;

이 예에서는 1, 2, 3을 순서대로 출력합니다.

QQueue는 QList 에서 상속합니다. QList 의 모든 기능은 QQueue에도 적용됩니다. 예를 들어 isEmpty()를 사용하여 큐가 비어 있는지 테스트할 수 있으며 QList 의 이터레이터 클래스(예: QListIterator)를 사용하여 QQueue를 트래버스할 수 있습니다. 또한 QQueue는 enqueue(), dequeue(), head()의 세 가지 편의 함수를 제공하여 FIFO 시맨틱을 쉽게 구현할 수 있습니다.

QQueue의 값 유형은 할당 가능한 데이터 유형이어야 합니다. 이는 일반적으로 사용되는 대부분의 데이터 유형을 포함하지만, 예를 들어 컴파일러는 QWidget 을 값으로 저장하는 것을 허용하지 않습니다. 대신 QWidget*를 사용하세요.

QListQStack참조하세요 .

멤버 함수 문서

T QQueue::dequeue()

큐에서 헤드 항목을 제거하고 반환합니다. 이 함수는 큐가 비어 있지 않다고 가정합니다.

QList::takeFirst()와 동일합니다.

head(), enqueue() 및 isEmpty()도 참조하세요 .

void QQueue::enqueue(const T &t)

대기열의 꼬리에 t 값을 추가합니다.

이는 QList::append()와 동일합니다.

dequeue() 및 head()도 참조하세요 .

큐의 헤드 항목에 대한 참조를 반환합니다. 이 함수는 큐가 비어 있지 않다고 가정합니다.

QList::first()와 동일합니다.

dequeue(), enqueue() 및 isEmpty()도 참조하세요 .

const T &QQueue::head() const

과부하가 걸린 기능입니다.

[noexcept] void QQueue::swap(QQueue<T> &other)

이 대기열을 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.