QStack Class
template <typename T> class QStackQStack クラスは、スタックを提供するテンプレートクラスです。詳細...
| ヘッダー: | #include <QStack> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 継承元: | QList |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QStackは、「暗黙的に共有されるクラス」および「コンテナクラス」の一部です。
注:このクラスのすべての関数は再入可能です。
パブリック関数
| 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 *を格納してください。
メンバ関数のドキュメント
T QStack::pop()
スタックの一番上の要素を取り出し、それを返します。この関数は、スタックが空ではないことを前提としています。
top()、push()、およびisEmpty()も参照してください 。
[since 6.11] void QStack::push(T &&t)
要素t をスタックの先頭に追加します。
これは `QList::append()` と同じ動作です。
この関数は Qt 6.11 で導入されました。
void QStack::push(const T &t)
要素 `t ` をスタックの先頭に追加します。
これは `QList::append()` と同じ動作です。
[noexcept] void QStack::swap(QStack<T> &other)
このスタックとother を交換します。この操作は非常に高速で、失敗することはありません。
T &QStack::top()
スタックの先頭要素への参照を返します。この関数は、スタックが空ではないことを前提としています。
これは `QList::last()` と同じです。
pop()、push()、およびisEmpty()も参照してください 。
const T &QStack::top() const
これはオーバーロードされた関数です。
© 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.