このページでは

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のジェネリックコンテナクラスの 1 つであり、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 セマンティクスを簡単に実装できる 3 つの便利関数、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.