QMetaSequence Class

QMetaSequenceクラスは、シーケンシャル・コンテナへの型消去アクセスを可能にします。詳細...

Header: #include <QMetaSequence>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Since: Qt 6.0
Inherits: QMetaContainer

このクラスは等価比較可能です。

パブリック関数

void addValue(void *container, const void *value) const
void addValueAtBegin(void *container, const void *value) const
void addValueAtEnd(void *container, const void *value) const
bool canAddValue() const
bool canAddValueAtBegin() const
bool canAddValueAtEnd() const
bool canEraseRangeAtIterator() const
bool canEraseValueAtIterator() const
bool canGetValueAtConstIterator() const
bool canGetValueAtIndex() const
bool canGetValueAtIterator() const
bool canInsertValueAtIterator() const
bool canRemoveValue() const
bool canRemoveValueAtBegin() const
bool canRemoveValueAtEnd() const
bool canSetValueAtIndex() const
bool canSetValueAtIterator() const
void eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const
void eraseValueAtIterator(void *container, const void *iterator) const
void insertValueAtIterator(void *container, const void *iterator, const void *value) const
bool isSortable() const
void removeValue(void *container) const
void removeValueAtBegin(void *container) const
void removeValueAtEnd(void *container) const
void setValueAtIndex(void *container, qsizetype index, const void *value) const
void setValueAtIterator(const void *iterator, const void *value) const
void valueAtConstIterator(const void *iterator, void *result) const
void valueAtIndex(const void *container, qsizetype index, void *result) const
void valueAtIterator(const void *iterator, void *result) const
QMetaType valueMetaType() const

静的パブリックメンバ

(since 6.0) QMetaSequence fromContainer()
(since 6.0) bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)
(since 6.0) bool operator==(const QMetaSequence &lhs, const QMetaSequence &rhs)

詳細な説明

このクラスは、オペランドとして void* を使用する、いくつかのプリミティブなコンテナ操作を提供します。こうすることで、Variantから取得した汎用コンテナを、その型を知ることなく操作することができます。

様々なメソッドへの void* 引数は、通常、それぞれのコンテナまたは値型のQVariant を使用し、そのQVariant::data() またはQVariant::constData() メソッドを呼び出すことによって作成されます。しかし、コンテナ型や値型のオブジェクトへのプレーン・ポインタを渡すこともできる。

イテレータの無効化は、基礎となるコンテナによって与えられるルールに従うものであり、APIで表現されるものではありません。そのため、真に汎用的なコンテナでは、書き込み操作の後はイテレータは無効とみなされます。

メンバ関数ドキュメント

void QMetaSequence::addValue(void *container, const void *value) const

可能であれば、containervalue を追加する。canAddValue() がfalse を返す場合、value は追加されない。canAddValueAtEnd() がtrue を返す場合、valuecontainer の最後に追加される。canAddValueAtBegin() がtrue を返す場合、value はコンテナの最初に追加される。それ以外の場合、値は指定されていない場所に追加されるか、まったく追加されない。後者は、例えばQSet のように、順序のないコンテナに値を追加する場合である。

canAddValue()、canAddValueAtBegin()、canAddValueAtEnd()、isSortable()、removeValue()も参照

void QMetaSequence::addValueAtBegin(void *container, const void *value) const

container の先頭にvalue を追加します。canAddValueAtBegin() がfalse を返す場合、value は追加されない。

canAddValueAtBegin()、isSortable()、removeValueAtBegin()も参照

void QMetaSequence::addValueAtEnd(void *container, const void *value) const

可能であれば、container の最後にvalue を追加する。canAddValueAtEnd() がfalse を返す場合、value は追加されない。

canAddValueAtEnd()、isSortable()、removeValueAtEnd()も参照

bool QMetaSequence::canAddValue() const

コンテナに値を追加できる場合はtrue を返し、そうでない場合はfalse を返す。

addValue() およびisSortable() も参照

bool QMetaSequence::canAddValueAtBegin() const

addValue() を使用して追加した値をコンテナの先頭に配置できる場合はtrue を返し、そうでない場合はfalse を返す。

addValueAtBegin() およびcanAddValueAtEnd() も参照

bool QMetaSequence::canAddValueAtEnd() const

addValue() を使用して追加した値をコンテナの最後に配置できる場合はtrue を返し、そうでない場合はfalse を返す。

addValueAtEnd() およびcanAddValueAtBegin() も参照

bool QMetaSequence::canEraseRangeAtIterator() const

2つのイテレータ間の範囲をコンテナから消去できる場合はtrue を返し、そうでない場合はfalse を返す。

bool QMetaSequence::canEraseValueAtIterator() const

非 const イテレータが指す値を消去できる場合はtrue を返し、そうでない場合はfalse を返す。

hasIterator() およびeraseValueAtIterator()も参照のこと

bool QMetaSequence::canGetValueAtConstIterator() const

基礎となるコンテナが const イテレータが指す値を取得できる場合はtrue を返し、そうでない場合はfalse を返す。

hasConstIterator() およびvalueAtConstIterator() も参照

bool QMetaSequence::canGetValueAtIndex() const

インデックスによってコンテナから値を取得できる場合はtrue を返し、そうでない場合はfalse を返す。

valueAtIndex() も参照

bool QMetaSequence::canGetValueAtIterator() const

基礎となるコンテナが、const 以外のイテレータが指す値を取得できる場合はtrue を返し、そうでない場合はfalse を返す。

hasIterator() およびvalueAtIterator() も参照

bool QMetaSequence::canInsertValueAtIterator() const

基礎となるコンテナが、non-const イテレータが指す場所を考慮して新しい値を挿入できる場合はtrue を返す。

hasIterator() およびinsertValueAtIterator() も参照

bool QMetaSequence::canRemoveValue() const

コンテナから値を削除できる場合はtrue を返し、そうでない場合はfalse を返す。

removeValue() およびisSortable()も参照

bool QMetaSequence::canRemoveValueAtBegin() const

removeValue() を使用してコンテナの先頭から値を削除できる場合はtrue を返し、そうでない場合はfalse を返す。

removeValueAtBegin() およびcanRemoveValueAtEnd()も参照

bool QMetaSequence::canRemoveValueAtEnd() const

removeValue() を使用してコンテナの末尾から値を削除できる場合はtrue を返し、そうでない場合はfalse を返す。

removeValueAtEnd() およびcanRemoveValueAtBegin()も参照

bool QMetaSequence::canSetValueAtIndex() const

インデックスによってコンテナに値を書き込める場合はtrue を返し、そうでない場合はfalse を返す。

setValueAtIndex() も参照

bool QMetaSequence::canSetValueAtIterator() const

基礎となるコンテナが、const 以外のイテレータが指す値に書き込める場合はtrue を返し、そうでない場合はfalse を返す。

hasIterator() およびsetValueAtIterator() も参照

void QMetaSequence::eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const

イテレータiterator1iterator2 の間の値の範囲を、可能であればcontainer から消去する。

canEraseValueAtIterator()、begin()、end() も参照

void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const

可能であれば、container から nononstiterator が指す値を消去する。

canEraseValueAtIterator()、begin()、およびend()も参照

[static constexpr, since 6.0] template <typename T> QMetaSequence QMetaSequence::fromContainer()

テンプレート・パラメータとして与えられた型に対応するQMetaSequence を返します。

この関数は Qt 6.0 で導入されました。

void QMetaSequence::insertValueAtIterator(void *container, const void *iterator, const void *value) const

可能であれば、valuecontainer に挿入し、非構成のiterator を考慮します。canInsertValueAtIterator() がfalse を返す場合、value は挿入されません。isSortable() がtrue を返す場合、その値はiterator が指す値の前に挿入される。そうでない場合、value は指定されていない場所に挿入されるか、まったく挿入されない。後者の場合、iterator がヒントとなる。それがvalue の正しい場所を指している場合、イテレータのないaddValue() よりも高速に処理される可能性がある。

canInsertValueAtIterator()、isSortable()、begin()、end()も参照

bool QMetaSequence::isSortable() const

基礎となるコンテナがソート可能な場合はtrue を返し、そうでない場合はfalse を返す。コンテナに追加された値が定義された場所に配置される場合、そのコンテナはソート可能であるとみなされる。ソート可能なコンテナへの挿入や追加は、常に成功する。ソート不可能なコンテナへの挿入や追加は成功しないかもしれない。 例えば、コンテナがQSet 、挿入される値をすでに含んでいる場合などである。

addValue()、insertValueAtIterator()、canAddValueAtBegin()、canAddValueAtEnd()、canRemoveValueAtBegin()、canRemoveValueAtEnd()も参照

void QMetaSequence::removeValue(void *container) const

可能であれば、container から値を削除します。canRemoveValue() がfalse を返す場合、値は削除されない。canRemoveValueAtEnd() がtrue を返す場合、container の最後の値が削除される。canRemoveValueAtBegin() がtrue を返す場合、container の最初の値が削除される。それ以外の場合は、指定されていない値または何も削除されない。

canRemoveValue()、canRemoveValueAtBegin()、canRemoveValueAtEnd()、isSortable()、addValue()も参照

void QMetaSequence::removeValueAtBegin(void *container) const

可能であれば、container の先頭から値を削除する。canRemoveValueAtBegin() がfalse を返す場合、値は削除されない。

canRemoveValueAtBegin()、isSortable()、addValueAtBegin()も参照

void QMetaSequence::removeValueAtEnd(void *container) const

可能であれば、container の末尾から値を削除する。canRemoveValueAtEnd() がfalse を返す場合、値は削除されません。

canRemoveValueAtEnd(),isSortable(),addValueAtEnd()も参照のこと

void QMetaSequence::setValueAtIndex(void *container, qsizetype index, const void *value) const

パラメータとして渡されたvalue を使用して、containerindex の値を上書きする。

valueAtIndex() およびcanSetValueAtIndex()も参照

void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const

可能であれば、iterator が指す値に、value を書き込む。

valueAtIterator()、canSetValueAtIterator()、begin()、およびend() も参照

void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const

constiterator が指す値を取得し、可能であればresult が指すメモリ位置に格納します。

canGetValueAtConstIterator()、constBegin()、constEnd()も参照

void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const

containerindex の値を取得し、可能であればresult が指すメモリ位置に格納する。

setValueAtIndex() およびcanGetValueAtIndex()も参照

void QMetaSequence::valueAtIterator(const void *iterator, void *result) const

nononstiterator が指す値を取得し、可能であればresult が指すメモリ位置に格納する。

setValueAtIterator()、canGetValueAtIterator()、begin()、end()も参照

QMetaType QMetaSequence::valueMetaType() const

コンテナに格納されている値のメタ型を返します。

関連する非メンバー

[noexcept, since 6.0] bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)

QMetaSequence lhsQMetaSequence rhs と異なるコンテナ型を表す場合はtrue を返し、そうでない場合はfalse を返します。

この関数は Qt 6.0 で導入されました。

[noexcept, since 6.0] bool operator==(const QMetaSequence &lhs, const QMetaSequence &rhs)

QMetaSequence lhsQMetaSequence rhs と同じコンテナ型を表す場合はtrue を返し、そうでない場合はfalse を返します。

この関数は Qt 6.0 で導入されました。

この関数は、Qt 6.0 で導入されました©2024 The Qt Company Ltd. ここに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。