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()
void push(const T &t)
void swap(QStack<T> &other)
T &top()
const T &top() const

详细说明

QStack<T> 是 Qt 的通用容器类之一。它为同一类型的项目实现了堆栈数据结构。

栈是一种后进先出(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 继承自QListQList 的所有功能也适用于 QStack。例如,您可以使用isEmpty() 测试堆栈是否为空,还可以使用QList 的迭代器类遍历 QStack(例如,QListIterator )。此外,QStack 还提供了三个方便函数,让您可以轻松实现后进先出语义:push(),pop() 和top().

QStack 的值类型必须是可分配的数据类型。这涵盖了大多数常用的数据类型,但编译器不会让你存储QWidget 作为值,而是存储QWidget *。

另请参阅 QListQQueue

成员函数文档

T QStack::pop()

从堆栈中移除顶层项目并返回。此函数假定栈不是空的。

另请参阅 top()、push() 和isEmpty()。

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()。

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