このページでは

QMetaAssociation Class

QMetaAssociationクラスは、連想コンテナへの型消去アクセスを可能にします。詳細...

ヘッダ #include <QMetaAssociation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
以来:Qt 6.0
継承: QMetaContainer

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

パブリック型

(since 6.11) class Iterable

パブリック関数

bool canContainsKey() const
bool canCreateConstIteratorAtKey() const
bool canCreateIteratorAtKey() const
bool canGetKeyAtConstIterator() const
bool canGetKeyAtIterator() const
bool canGetMappedAtConstIterator() const
bool canGetMappedAtIterator() const
bool canGetMappedAtKey() const
bool canInsertKey() const
bool canRemoveKey() const
bool canSetMappedAtIterator() const
bool canSetMappedAtKey() const
bool containsKey(const void *container, const void *key) const
void *createConstIteratorAtKey(const void *container, const void *key) const
void *createIteratorAtKey(void *container, const void *key) const
void insertKey(void *container, const void *key) const
void keyAtConstIterator(const void *iterator, void *key) const
void keyAtIterator(const void *iterator, void *key) const
QMetaType keyMetaType() const
void mappedAtConstIterator(const void *iterator, void *mapped) const
void mappedAtIterator(const void *iterator, void *mapped) const
void mappedAtKey(const void *container, const void *key, void *mapped) const
QMetaType mappedMetaType() const
void removeKey(void *container, const void *key) const
void setMappedAtIterator(const void *iterator, const void *mapped) const
void setMappedAtKey(void *container, const void *key, const void *mapped) const

静的パブリックメンバ

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

詳細な説明

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

QMetaAssociation は、QMapQHash のようなマップされた値を持つコンテナと、QSet のようなキーのみを保持するコンテナの両方をカバーしています。

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

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

QMetaContainerQMetaSequenceQIterableQIteratorも参照のこと

メンバ関数ドキュメント

bool QMetaAssociation::canContainsKey() const

containsKey() を使ってコンテナのキーを照会できる場合はtrue を返し、そうでない場合はfalse を返す。

bool QMetaAssociation::canCreateConstIteratorAtKey() const

コンテナ内のエントリを指すイテレータをcreateConstIteratorAtKey() で作成できる場合はtrue を返し、そうでない場合は false を返す。

bool QMetaAssociation::canCreateIteratorAtKey() const

コンテナ内のエントリを指すイテレータをcreateIteratorAtKey() で作成できる場合はtrue を返し、そうでない場合は false を返す。

createIteratorAtKey()も参照

bool QMetaAssociation::canGetKeyAtConstIterator() const

keyAtConstIterator() を使用して const イテレータからキーを取得できる場合はtrue を返し、そうでない場合はfalse を返します。

keyAtConstIterator()も参照

bool QMetaAssociation::canGetKeyAtIterator() const

keyAtIterator() を使って非構成イテレータからキーを取得できる場合はtrue を返し、そうでない場合はfalse を返す。

keyAtIterator()も参照

bool QMetaAssociation::canGetMappedAtConstIterator() const

mappedAtConstIterator() を使用して const イテレータからマップされた値を取得できる場合はtrue を返し、そうでない場合はfalse を返します。

mappedAtConstIterator()も参照

bool QMetaAssociation::canGetMappedAtIterator() const

マップされた値がmappedAtIterator() を使用して nononst イテレータから取得できる場合はtrue を返し、そうでない場合はfalse を返す。

mappedAtIterator()も参照

bool QMetaAssociation::canGetMappedAtKey() const

mappedAtKey() を使ってコンテナの値を照会できる場合はtrue を返し、そうでない場合はfalse を返す。

bool QMetaAssociation::canInsertKey() const

insertKey() を使ってコンテナにキーを追加できる場合はtrue を返し、そうでない場合はfalse を返す。

insertKey()も参照

bool QMetaAssociation::canRemoveKey() const

removeKey() を使ってコンテナからキーを削除できる場合はtrue を返し、そうでない場合はfalse を返す。

removeKey()も参照

bool QMetaAssociation::canSetMappedAtIterator() const

マップされた値が、setMappedAtIterator() を使用した nononst iterator で設定できる場合はtrue を返し、そうでない場合はfalse を返す。

setMappedAtIterator()も参照のこと

bool QMetaAssociation::canSetMappedAtKey() const

setMappedAtKey() を使ってコンテナ内でマップされた値を変更できる場合はtrue を返し、そうでない場合はfalse を返す。

setMappedAtKey()も参照

bool QMetaAssociation::containsKey(const void *container, const void *key) const

container がキーの問い合わせが可能で、かつkey を含んでいればtrue を返し、そうでなければfalse を返す。

canContainsKey()も参照のこと

void *QMetaAssociation::createConstIteratorAtKey(const void *container, const void *key) const

可能であれば、containerkey のエントリを指す const イテレータを返す。エントリが存在しない場合、container の末尾を指す const イテレータを作成する。const イテレータを作成できない場合、nullptr を返す。

const イテレータは、destroyConstIterator() を使用して破棄しなければならない。

canCreateConstIteratorAtKey()、constBegin()、constEnd()、destroyConstIterator()も参照

void *QMetaAssociation::createIteratorAtKey(void *container, const void *key) const

可能であれば、containerkey のエントリを指す nononst イテレータを返す。エントリが存在しない場合、container の末尾を指す nononst イテレータを作成する。 nononst イテレータを作成できない場合、nullptr を返す。

non-constイテレータは、destroyIterator()を使用して破棄しなければならない。

canCreateIteratorAtKey()、begin()、end()、destroyIterator()も参照のこと

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

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

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

void QMetaAssociation::insertKey(void *container, const void *key) const

可能であれば、keycontainer に挿入する。コンテナにマップされた値がある場合、デフォルトで作成されたマップされた値がkey に関連付けられます。

canInsertKey()も参照

void QMetaAssociation::keyAtConstIterator(const void *iterator, void *key) const

constiterator が指すキーを取得し、可能であればkey が指すメモリ位置に格納する。

canGetKeyAtConstIterator()、constBegin()、constEnd()、createConstIteratorAtKey()も参照のこと

void QMetaAssociation::keyAtIterator(const void *iterator, void *key) const

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

canGetKeyAtIterator()、begin()、end()、createIteratorAtKey()も参照のこと

QMetaType QMetaAssociation::keyMetaType() const

コンテナ内のキーのメタ型を返します。

void QMetaAssociation::mappedAtConstIterator(const void *iterator, void *mapped) const

constiterator が指すマップされた値を取得し、可能であればmapped が指すメモリ位置に格納する。

canGetMappedAtConstIterator()、constBegin()、constEnd()、createConstIteratorAtKey()も参照のこと

void QMetaAssociation::mappedAtIterator(const void *iterator, void *mapped) const

nononstiterator が指すマップされた値を取得し、可能であればmapped が指すメモリ位置に格納する。

setMappedAtIterator()、canGetMappedAtIterator()、begin()、end()、createIteratorAtKey()も参照のこと

void QMetaAssociation::mappedAtKey(const void *container, const void *key, void *mapped) const

containerkey に関連付けられたマップされた値を取得し、mapped が指すメモリ位置に配置する。

setMappedAtKey() およびcanGetMappedAtKey()も参照のこと

QMetaType QMetaAssociation::mappedMetaType() const

コンテナ内のマップされた値のメタ型を返します。

void QMetaAssociation::removeKey(void *container, const void *key) const

container からkey とそれに関連するマップされた値を可能であれば削除する。

canRemoveKey()も参照

void QMetaAssociation::setMappedAtIterator(const void *iterator, const void *mapped) const

可能であれば、iterator が指すコンテナの場所に、mapped の値を書き込む。

mappedAtIterator()、canSetMappedAtIterator()、begin()、end()、createIteratorAtKey()も参照のこと

void QMetaAssociation::setMappedAtKey(void *container, const void *key, const void *mapped) const

引数として渡されたmapped の値を使用して、containerkey に関連付けられた値を上書きする。

mappedAtKey() およびcanSetMappedAtKey()も参照のこと

関連する非会員

[noexcept] bool operator!=(const QMetaAssociation &lhs, const QMetaAssociation &rhs)

QMetaAssociation lhsQMetaAssociation rhs と異なるコンテナタイプを表している場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] bool operator==(const QMetaAssociation &lhs, const QMetaAssociation &rhs)

QMetaAssociation lhsQMetaAssociation rhs と同じコンテナタイプを表している場合はtrue を返し、そうでない場合はfalse を返す。

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