이 페이지에서

QStack Class

template <typename T> class QStack

QStack 클래스는 스택 기능을 제공하는 템플릿 클래스입니다. 더 보기...

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

참고: 이 클래스의 모든 함수는 재입력 가능합니다.

공개 함수

T pop()
(since 6.11) void push(T &&t)
void push(const T &t)
void swap(QStack<T> &other)
T &top()
const T &top() const

상세 설명

QStack<T>는 Qt의 제네릭 컨테이너 클래스 중 하나로, 여기서 T 는 요소 유형을 지정합니다. 이 클래스는 동일한 유형의 항목에 대한 스택 데이터 구조를 구현합니다.

스택은 후입선출(LIFO) 구조입니다. 항목은 push()을 사용하여 스택의 맨 위에 추가되고, pop()을 사용하여 맨 위에서 가져옵니다. top() 함수는 최상위 항목을 제거하지 않고 액세스할 수 있게 해줍니다.

예제:

    QStack<int> stack;
    stack.push(1);
    stack.push(2);
    stack.push(3);
    while (!stack.isEmpty())
        cout << stack.pop() << Qt::endl;

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

QStack은 QList 을 상속받습니다. QList 의 모든 기능은 QStack에도 적용됩니다. 예를 들어, ` isEmpty()`를 사용하여 스택이 비어 있는지 확인할 수 있으며, ` QList`의 반복자 클래스(예: ` QListIterator`)를 사용하여 QStack을 순회할 수 있습니다. 하지만 이 외에도 QStack은 LIFO(후입선출) 세미언틱을 쉽게 구현할 수 있도록 세 가지 편의 함수인 ` push()`, ` pop()`, ` top()`를 제공합니다.

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

QList 및 QQueue도 참조하십시오 .

멤버 함수 문서

T QStack::pop()

스택의 맨 위 항목을 제거하고 이를 반환합니다. 이 함수는 스택이 비어 있지 않다고 가정합니다.

top(), push(), isEmpty()도 참조하십시오 .

[since 6.11] void QStack::push(T &&t)

t 요소를 스택의 맨 위에 추가합니다.

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

이 함수는 Qt 6.11에서 도입되었습니다.

pop() 및 top()도 참조하십시오 .

void QStack::push(const T &t)

t 요소를 스택의 맨 위에 추가합니다.

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

pop() 및 top()도 참조하십시오 .

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

이 스택을 ` other`와 교환합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.

T &QStack::top()

스택의 최상위 항목에 대한 참조를 반환합니다. 이 함수는 스택이 비어 있지 않다고 가정합니다.

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

pop(), push(), isEmpty()도 참조하십시오 .

const T &QStack::top() const

이것은 오버로딩된 함수입니다.

pop() 및 push()도 참조하십시오 .

© 2026 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.