QLinkedList Class
template <typename T> class QLinkedListQLinkedList クラスは、連結リストを提供するテンプレートクラスです。詳細...
| ヘッダー: | #include <QLinkedList> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake: | QT += core5compat |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- QLinkedList は「暗黙的に共有されるクラス」の一部です。
注:このクラスのすべての関数は再入可能です。
パブリック型
| class | const_iterator |
| class | iterator |
| ConstIterator | |
| Iterator | |
| const_pointer | |
| const_reference | |
| const_reverse_iterator | |
| difference_type | |
| pointer | |
| reference | |
| reverse_iterator | |
| size_type | |
| value_type |
パブリック関数
| QLinkedList() | |
| QLinkedList(std::initializer_list<T> list) | |
| QLinkedList(InputIterator first, InputIterator last) | |
| QLinkedList(const QLinkedList<T> &other) | |
| QLinkedList(QLinkedList<T> &&other) | |
| ~QLinkedList() | |
| void | append(const T &value) |
| T & | back() |
| const T & | back() const |
| QLinkedList<T>::iterator | begin() |
| QLinkedList<T>::const_iterator | begin() const |
| QLinkedList<T>::const_iterator | cbegin() const |
| QLinkedList<T>::const_iterator | cend() const |
| void | clear() |
| QLinkedList<T>::const_iterator | constBegin() const |
| QLinkedList<T>::const_iterator | constEnd() const |
| bool | contains(const T &value) const |
| int | count() const |
| int | count(const T &value) const |
| QLinkedList<T>::const_reverse_iterator | crbegin() const |
| QLinkedList<T>::const_reverse_iterator | crend() const |
| bool | empty() const |
| QLinkedList<T>::iterator | end() |
| QLinkedList<T>::const_iterator | end() const |
| bool | endsWith(const T &value) const |
| QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator pos) |
| QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end) |
| T & | first() |
| const T & | first() const |
| T & | front() |
| const T & | front() const |
| QLinkedList<T>::iterator | insert(QLinkedList<T>::iterator before, const T &value) |
| bool | isEmpty() const |
| T & | last() |
| const T & | last() const |
| void | pop_back() |
| void | pop_front() |
| void | prepend(const T &value) |
| void | push_back(const T &value) |
| void | push_front(const T &value) |
| QLinkedList<T>::reverse_iterator | rbegin() |
| QLinkedList<T>::const_reverse_iterator | rbegin() const |
| int | removeAll(const T &value) |
| void | removeFirst() |
| void | removeLast() |
| bool | removeOne(const T &value) |
| QLinkedList<T>::reverse_iterator | rend() |
| QLinkedList<T>::const_reverse_iterator | rend() const |
| int | size() const |
| bool | startsWith(const T &value) const |
| void | swap(QLinkedList<T> &other) |
| T | takeFirst() |
| T | takeLast() |
| std::list<T> | toStdList() const |
| bool | operator!=(const QLinkedList<T> &other) const |
| QLinkedList<T> | operator+(const QLinkedList<T> &other) const |
| QLinkedList<T> & | operator+=(const QLinkedList<T> &other) |
| QLinkedList<T> & | operator+=(const T &value) |
| QLinkedList<T> & | operator<<(const QLinkedList<T> &other) |
| QLinkedList<T> & | operator<<(const T &value) |
| QLinkedList<T> & | operator=(const QLinkedList<T> &other) |
| bool | operator==(const QLinkedList<T> &other) const |
静的パブリック メンバー
| QLinkedList<T> | fromStdList(const std::list<T> &list) |
関連する非メンバー
| QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> | operator<<(QDataStream &out, const QLinkedList<T> &list) |
| QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> | operator>>(QDataStream &in, QLinkedList<T> &list) |
詳細な説明
QLinkedList<T> は Qtのジェネリックコンテナクラスの一つであり、T はリストに格納される要素の型を表します。このクラスは値のリストを格納し、イテレータによるアクセスに加え、定数時間での挿入および削除を提供します。
QList<T> と QLinkedList<T> は同様の機能を提供します。概要は以下の通りです:
- ほとんどの用途では、QList が適切なクラスです。そのインデックスベースの API は、QLinkedList のイテレータベースの API よりも便利です。その項目はメモリ上で隣接する位置を占めます。また、実行ファイル内のコード量も少なくて済みます。
- リストの中間への挿入が定数時間で実行されることが保証されており、インデックスではなく項目へのイテレータが必要な、真のリンクリストが必要な場合は、QLinkedListを使用してください。
以下に、整数を格納する QLinkedList と、QTime の値を格納する QLinkedList の例を示します:
QLinkedList<int> integerList;
QLinkedList<QTime> timeList;QLinkedListは項目のリストを格納します。デフォルトのコンストラクタは空のリストを作成します。リストに項目を挿入するには、operator<<()を使用できます:
QLinkedList<QString> list;
list << "one" << "two" << "three";
// list: ["one", "two", "three"]リンクリストの先頭または末尾のアイテムを取得したい場合は、first() またはlast() を使用します。リストの両端からアイテムを削除したい場合は、removeFirst() またはremoveLast() を使用します。リスト内の特定の値のすべてのインスタンスを削除したい場合は、removeAll() を使用します。
リストの先頭または末尾の要素を削除し、その要素に対して何らかの処理を行うことは、よくある要件です。このために、QLinkedList ではtakeFirst() およびtakeLast() が提供されています。以下は、リストから要素を 1 つずつ削除し、それらに対してdelete () を呼び出すループの例です。
QLinkedList<QWidget *> list;
...
while (!list.isEmpty())
delete list.takeFirst();QLinkedListの値型は、代入可能なデータ型でなければなりません。 これにより、一般的に使用されるほとんどのデータ型がカバーされますが、たとえば、QWidget を値として格納することはコンパイラによって許可されません。その代わりに、QWidget * を格納する必要があります。一部の関数には追加の要件があります。たとえば、contains() およびremoveAll() は、値の型がoperator==() をサポートしていることを前提としています。これらの要件は、関数ごとにドキュメントに記載されています。
リストの中間に項目を挿入、変更、または削除したい場合は、イテレータを使用する必要があります。QLinkedList は、Java スタイルのイテレータ(QLinkedListIterator およびQMutableLinkedListIterator )とSTL スタイルのイテレータ(QLinkedList::const_iterator およびQLinkedList::iterator )の両方を提供しています。詳細については、これらのクラスのドキュメントを参照してください。
QLinkedListIterator 、QMutableLinkedListIterator 、およびQListも参照してください 。
メンバ型のドキュメント
QLinkedList::ConstIterator
QLinkedList::const_iterator のQtスタイルの同義語。
QLinkedList::Iterator
QLinkedList::iterator の Qt スタイルの同義語。
QLinkedList::const_pointer
const T * の typedef。STL との互換性を確保するために用意されています。
QLinkedList::const_reference
const T & の typedef。STL との互換性を確保するために用意されています。
QLinkedList::const_reverse_iterator
QLinkedList::const_reverse_iterator の typedef は、QLinkedList に対して STL 形式の const 逆方向イテレータを提供します。
これは単に `std::reverse_iterator<QLinkedList::const_iterator>` の typedef です。
警告: 暗黙的に共有されるコンテナ上のイテレータは 、STLイテレータとまったく同じように動作するわけではありません。コンテナ上でイテレータがアクティブな間は、そのコンテナのコピーを行うことを避けるべきです。詳細については、「暗黙的な共有によるイテレータの問題」を参照してください。
関連項目: QLinkedList::rbegin()、QLinkedList::rend()、QLinkedList::reverse_iterator 、およびQLinkedList::const_iterator 。
QLinkedList::difference_type
ptrdiff_t の typedef。STL との互換性のために用意されています。
QLinkedList::pointer
T * の typedef。STL との互換性を確保するために用意されています。
QLinkedList::reference
T および . に対する typedef。STL との互換性を確保するために用意されています。
QLinkedList::reverse_iterator
QLinkedList::reverse_iterator の typedef は、QLinkedList に対して、STL スタイルの非 const 逆方向イテレータを提供します。
これは単に `std::reverse_iterator<QLinkedList::iterator>` の typedef です。
警告: 暗黙的に共有されるコンテナ上のイテレータは 、STL イテレータとまったく同じように動作するわけではありません。コンテナ上でイテレータがアクティブな間は、そのコンテナのコピーを避けるべきです。詳細については、「暗黙的な共有によるイテレータの問題」を参照してください。
関連項目: QLinkedList::rbegin()、QLinkedList::rend()、QLinkedList::const_reverse_iterator 、およびQLinkedList::iteratorも参照してください 。
QLinkedList::size_type
int の typedef。STL との互換性を確保するために用意されています。
QLinkedList::value_type
T の typedef。STL との互換性を確保するために用意されています。
メンバ関数のドキュメント
[noexcept] QLinkedList::QLinkedList()
空のリストを作成します。
QLinkedList::QLinkedList(std::initializer_list<T> list)
list で指定されたstd::initializer_listからリストを構築します。
このコンストラクタは、コンパイラが C++11 の初期化リストをサポートしている場合にのみ有効になります。
template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true> QLinkedList::QLinkedList(InputIterator first, InputIterator last)
イテレータの範囲 [first,last) 内の要素を含むリストを作成します。
InputIterator の値型は、T に変換可能でなければなりません。
QLinkedList::QLinkedList(const QLinkedList<T> &other)
other のコピーを作成します。
QLinkedListは暗黙的に共有されているため、この操作は定数時間で実行されます。これにより、関数からQLinkedListを返す処理が非常に高速になります。共有インスタンスが変更された場合、そのインスタンスはコピーされます(コピー・オン・ライト)が、これには線形時間がかかります。
operator=()も参照してください 。
[noexcept] QLinkedList::QLinkedList(QLinkedList<T> &&other)
QLinkedListのインスタンスをムーブコンストラクタで生成し、other が指していたのと同じオブジェクトを指すようにします。
QLinkedList::~QLinkedList()
リストを破棄します。リスト内の値への参照、およびこのリストを反復処理するすべてのイテレータは無効になります。
void QLinkedList::append(const T &value)
リストの最後に「value 」を追加します。
例:
QLinkedList<QString> list;
list.append("one");
list.append("two");
list.append("three");
// list: ["one", "two", "three"]これは list.insert(end(),value) と同じです。
operator<<()、prepend()、およびinsert()も参照してください 。
T &QLinkedList::back()
この関数は、STLとの互換性を確保するために提供されています。これは、last() と同等です。
const T &QLinkedList::back() const
これはオーバーロードされた関数です。
QLinkedList<T>::iterator QLinkedList::begin()
リストの最初の要素を指すSTL形式のイテレータを返します。
constBegin() およびend()も参照してください 。
[noexcept] QLinkedList<T>::const_iterator QLinkedList::begin() const
これはオーバーロードされた関数です。
[noexcept] QLinkedList<T>::const_iterator QLinkedList::cbegin() const
リストの最初の要素を指す、STL スタイルのconstイテレータを返します。
[noexcept] QLinkedList<T>::const_iterator QLinkedList::cend() const
リストの最後の要素の直後に位置する仮想の要素を指す、STL スタイルのconstイテレータを返します。
void QLinkedList::clear()
リスト内のすべての項目を削除します。
removeAll()も参照してください 。
[noexcept] QLinkedList<T>::const_iterator QLinkedList::constBegin() const
リストの最初の要素を指す、STL スタイルのconstイテレータを返します。
begin() およびconstEnd()も参照してください 。
[noexcept] QLinkedList<T>::const_iterator QLinkedList::constEnd() const
リストの最後の要素の直後に位置する仮想の要素を指す、STL スタイルのconstイテレータを返します。
constBegin() およびend()も参照してください 。
bool QLinkedList::contains(const T &value) const
リストに `value` が含まれている場合は `true ` を返し、そうでない場合は `false` を返します。
この関数を使用するには、値型が `operator==()` の実装を備えている必要があります。
QLinkedListIterator::findNext() およびQLinkedListIterator::findPrevious()も参照してください 。
int QLinkedList::count() const
size() と同じです。
int QLinkedList::count(const T &value) const
リスト内の `value ` の出現回数を返します。
この関数を使用するには、値型が `operator==()` を実装している必要があります。
contains()も参照してください 。
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crbegin() const
リストの最初の要素を指す、STL スタイルの逆順イテレータ(const)を返します。
begin()、rbegin()、およびrend()も参照してください 。
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crend() const
リストの最後の要素の1つ先を指す、STLスタイルの定数逆イテレータを、逆順で返します。
end()、rend()、およびrbegin()も参照してください 。
bool QLinkedList::empty() const
この関数は、STLとの互換性を確保するために用意されています。これはisEmpty()と同等であり、リストが空の場合はtrue を返します。
QLinkedList<T>::iterator QLinkedList::end()
リストの最後の項目の直後に位置する仮想の項目を指す、STLスタイルのイテレータを返します。
begin() およびconstEnd()も参照してください 。
[noexcept] QLinkedList<T>::const_iterator QLinkedList::end() const
これはオーバーロードされた関数です。
bool QLinkedList::endsWith(const T &value) const
リストが空ではなく、その最後の要素が `value` と等しい場合は `true ` を返し、そうでない場合は `false` を返します。
isEmpty() およびlast()も参照してください 。
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator pos)
イテレータ `pos ` が指す要素をリストから削除し、リスト内の次の要素へのイテレータを返します(その要素は `end` である可能性があります)。
insert()も参照してください 。
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end)
begin からend までのすべての項目を削除します( 自体は含まれません)。
これはオーバーロードされた関数です。
T &QLinkedList::first()
リストの最初の要素への参照を返します。この関数は、リストが空ではないことを前提としています。
last() およびisEmpty()も参照してください 。
const T &QLinkedList::first() const
これはオーバーロードされた関数です。
[static] QLinkedList<T> QLinkedList::fromStdList(const std::list<T> &list)
list に含まれるデータを持つQLinkedList オブジェクトを返します。QLinkedList 内の要素の順序は、list 内の順序と同じです。
例:
std::list<double> stdlist;
list.push_back(1.2);
list.push_back(0.5);
list.push_back(3.14);
QLinkedList<double> list = QLinkedList<double>::fromStdList(stdlist);関連項目: toStdList().
T &QLinkedList::front()
この関数は、STLとの互換性を確保するために提供されています。これは、first() と同等です。
const T &QLinkedList::front() const
これはオーバーロードされた関数です。
QLinkedList<T>::iterator QLinkedList::insert(QLinkedList<T>::iterator before, const T &value)
イテレータ `before` が指す項目の前に、value を挿入します。挿入された項目を指すイテレータを返します。
erase()も参照してください 。
bool QLinkedList::isEmpty() const
リストに要素が含まれていない場合は `true ` を返し、それ以外の場合は `false` を返します。
size()も参照してください 。
T &QLinkedList::last()
リストの最後の要素への参照を返します。この関数は、リストが空ではないことを前提としています。
first() およびisEmpty()も参照してください 。
const T &QLinkedList::last() const
これはオーバーロードされた関数です。
void QLinkedList::pop_back()
この関数は、STLとの互換性を確保するために提供されています。これは、removeLast() と同等です。
void QLinkedList::pop_front()
この関数は、STLとの互換性を確保するために提供されています。これは、removeFirst() と同等です。
void QLinkedList::prepend(const T &value)
リストの先頭に「value 」を挿入します。
例:
QLinkedList<QString> list;
list.prepend("one");
list.prepend("two");
list.prepend("three");
// list: ["three", "two", "one"]これは list.insert(begin(),value) と同じです。
append() およびinsert()も参照してください 。
void QLinkedList::push_back(const T &value)
この関数は、STLとの互換性を確保するために提供されています。これは、append(value) と同等です。
void QLinkedList::push_front(const T &value)
この関数は、STLとの互換性を確保するために提供されています。これは、prepend(value) と同等です。
QLinkedList<T>::reverse_iterator QLinkedList::rbegin()
リストの最初の要素を指す、STL 形式の逆方向イテレータを、逆順で返します。
begin()、crbegin()、およびrend()も参照してください 。
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::rbegin() const
これはオーバーロードされた関数です。
int QLinkedList::removeAll(const T &value)
リスト内の「value 」をすべて削除します。
例:
QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeAll("sun");
// list: ["cloud", "rain"]この関数を使用するには、値型が `operator==()` の実装を持っている必要があります。
「insert()」も参照してください 。
void QLinkedList::removeFirst()
リストの先頭にある要素を削除します。
これは erase(begin()) と同じです。
removeLast() およびerase()も参照してください 。
void QLinkedList::removeLast()
リストの最後の項目を削除します。
removeFirst() およびerase()も参照してください 。
bool QLinkedList::removeOne(const T &value)
リスト内の「value 」の最初の出現箇所を削除します。成功した場合は `true ` を返し、失敗した場合は `false` を返します。
例:
QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeOne("sun");
// list: ["cloud", "sun", "rain"]この関数を使用するには、値型が `operator==()` の実装を持っている必要があります。
insert()も参照してください 。
QLinkedList<T>::reverse_iterator QLinkedList::rend()
リストの最後の要素の1つ先を指す、STL形式の逆方向イテレータを、逆順で返します。
end()、crend()、およびrbegin()も参照してください 。
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::rend() const
これはオーバーロードされた関数です。
int QLinkedList::size() const
リスト内の要素数を返します。
isEmpty() およびcount()も参照してください 。
bool QLinkedList::startsWith(const T &value) const
リストが空ではなく、その最初の要素が `value` と等しい場合は `true ` を返し、そうでない場合は `false` を返します。
isEmpty() およびfirst()も参照してください 。
[noexcept] void QLinkedList::swap(QLinkedList<T> &other)
other をこのリストとスワップします。この操作は非常に高速で、失敗することはありません。
T QLinkedList::takeFirst()
リストの先頭にある要素を削除し、それを返します。
戻り値を使用しない場合は、removeFirst() の方が効率的です。
takeLast() およびremoveFirst()も参照してください 。
T QLinkedList::takeLast()
リストの最後の要素を削除し、それを返します。
戻り値を使用しない場合は、removeLast() の方が効率的です。
takeFirst() およびremoveLast()も参照してください 。
std::list<T> QLinkedList::toStdList() const
このQLinkedList に含まれるデータを持つstd::listオブジェクトを返します。例:
QLinkedList<double> list;
list << 1.2 << 0.5 << 3.14;
std::list<double> stdlist = list.toStdList();fromStdList()も参照してください 。
bool QLinkedList::operator!=(const QLinkedList<T> &other) const
other がこのリストと等しくない場合はtrue を返し、それ以外の場合はfalse を返します。
2つのリストは、同じ順序で同じ値を含んでいる場合に等しいとみなされます。
この関数を使用するには、値型が `operator==()` を実装している必要があります。
operator==()も参照してください 。
QLinkedList<T> QLinkedList::operator+(const QLinkedList<T> &other) const
このリスト内のすべての項目に、other リスト内のすべての項目を続けて追加したリストを返します。
operator+=()も参照してください 。
QLinkedList<T> &QLinkedList::operator+=(const QLinkedList<T> &other)
other リストの項目をこのリストに追加し、このリストへの参照を返します。
operator+() およびappend()も参照してください 。
QLinkedList<T> &QLinkedList::operator+=(const T &value)
リストに `value ` を追加します。
これはオーバーロードされた関数です。
QLinkedList<T> &QLinkedList::operator<<(const QLinkedList<T> &other)
other リストの要素をこのリストに追加し、このリストへの参照を返します。
operator+=() およびappend()も参照してください 。
QLinkedList<T> &QLinkedList::operator<<(const T &value)
リストに `value ` を追加します。
これはオーバーロードされた関数です。
QLinkedList<T> &QLinkedList::operator=(const QLinkedList<T> &other)
other をこのリストに割り当て、このリストへの参照を返します。
bool QLinkedList::operator==(const QLinkedList<T> &other) const
other がこのリストと等しい場合はtrue を返し、そうでない場合はfalseを返します。
2つのリストは、同じ順序で同じ値を含んでいる場合に等しいとみなされます。
この関数を使用するには、値型が `operator==()` を実装している必要があります。
operator!=()も参照してください 。
関連する非メンバー関数
template <typename T> QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> operator<<(QDataStream &out, const QLinkedList<T> &list)
リンクリスト `list ` をストリーム `out` に書き込みます。
この関数を使用するには、値型がoperator<<() を実装している必要があります。
「QDataStream 演算子のフォーマット」も参照してください 。
template <typename T> QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> operator>>(QDataStream &in, QLinkedList<T> &list)
ストリーム `in ` からリンクリストを読み取り、`list` に格納します。
この関数を使用するには、値型が `operator>>()` を実装している必要があります。
「QDataStream 演算子の形式」も参照してください 。
© 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.