本页内容

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.