QMetaAssociation Class
QMetaAssociation 클래스는 연관 컨테이너에 대한 타입 지우기(type erasure) 기능을 통해 접근할 수 있게 해줍니다. 더 보기...
| 헤더: | #include <QMetaAssociation> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 다음부터: | Qt 6.0 |
| 상속: | QMetaContainer |
QMetaAssociation 비교
| 범주 | 비교 가능한 유형 |
|---|---|
| 동등성 | QMetaAssociation |
공개 유형
(since 6.11) class | Iterable |
공개 함수
| QMetaAssociation() | |
| 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은 QMap 이나 QHash 과 같이 값이 매핑된 컨테이너와 QSet 과 같이 키만 포함하는 컨테이너를 모두 다룹니다.
다양한 메서드에 전달되는 void* 인자는 일반적으로 해당 컨테이너 또는 값 유형의 QVariant 를 생성하고, 그 QVariant::data() 또는 QVariant::constData() 메서드를 호출하여 생성됩니다. 그러나 컨테이너나 값 유형의 객체에 대한 일반 포인터를 전달할 수도 있습니다.
이테레이터의 무효화는 기본이 되는 컨테이너가 정한 규칙을 따르며, API에서는 명시되지 않습니다. 따라서 진정한 제네릭 컨테이너의 경우, 모든 쓰기 작업 후에는 모든 이테레이터가 무효한 것으로 간주되어야 합니다.
QMetaContainer, QMetaSequence, QIterable 및 QIterator도 참조하십시오 .
멤버 함수 문서
[constexpr noexcept default] QMetaAssociation::QMetaAssociation()
QMetaAssociation 의 인스턴스를 기본 생성자로 생성합니다.
bool QMetaAssociation::canContainsKey() const
컨테이너에서 ` containsKey()`를 사용하여 키를 조회할 수 있는 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
bool QMetaAssociation::canCreateConstIteratorAtKey() const
createConstIteratorAtKey()를 사용하여 컨테이너의 항목을 가리키는 const 이터레이터를 생성할 수 있는 경우 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()를 사용하여 비const 이터레이터에서 매핑된 값을 가져올 수 있는 경우 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()를 사용하여 비const 이터레이터를 통해 매핑된 값을 설정할 수 있는 경우 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
가능한 경우, ` container` 내의 ` key ` 항목을 가리키는 const 이터레이터를 반환합니다. 해당 항목이 존재하지 않으면, ` container`의 끝을 가리키는 const 이터레이터를 생성합니다. const 이터레이터를 생성할 수 없는 경우, ` nullptr`을 반환합니다.
const 이터레이터는 destroyConstIterator()를 사용하여 소멸시켜야 합니다.
canCreateConstIteratorAtKey(), constBegin(), constEnd(), destroyConstIterator()도 참조하십시오 .
void *QMetaAssociation::createIteratorAtKey(void *container, const void *key) const
가능한 경우, ` container` 내의 ` key ` 항목으로 가리키는 비const 이터레이터를 반환합니다. 해당 항목이 존재하지 않으면, ` container`의 끝을 가리키는 비const 이터레이터를 생성합니다. 비const 이터레이터를 생성할 수 없는 경우, ` nullptr`를 반환합니다.
이 비정수 이터레이터는 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
가능한 경우 key 를 container 에 삽입합니다. 컨테이너에 매핑된 값이 있는 경우, default-create 매핑된 값이 key 에 연결됩니다.
canInsertKey()도 참조하십시오 .
void QMetaAssociation::keyAtConstIterator(const void *iterator, void *key) const
const iterator 가 가리키는 키를 가져와, 가능한 경우 key 가 가리키는 메모리 위치에 저장합니다.
canGetKeyAtConstIterator(), constBegin(), constEnd(), createConstIteratorAtKey()도 참조하십시오 .
void QMetaAssociation::keyAtIterator(const void *iterator, void *key) const
const가 아닌 ` iterator `가 가리키는 키를 가져와, 가능한 경우 ` key`가 가리키는 메모리 위치에 저장합니다.
canGetKeyAtIterator(), begin(), end() 및 createIteratorAtKey()도 참조하십시오 .
QMetaType QMetaAssociation::keyMetaType() const
컨테이너 내 키에 대한 메타 유형을 반환합니다.
void QMetaAssociation::mappedAtConstIterator(const void *iterator, void *mapped) const
const iterator 가 가리키는 매핑된 값을 가져와, 가능한 경우 mapped 가 가리키는 메모리 위치에 저장합니다.
canGetMappedAtConstIterator(), constBegin(), constEnd() 및 createConstIteratorAtKey()도 참조하십시오 .
void QMetaAssociation::mappedAtIterator(const void *iterator, void *mapped) const
const가 아닌 ` iterator `가 가리키는 매핑된 값을 가져와, 가능한 경우 ` mapped`가 가리키는 메모리 위치에 저장합니다.
setMappedAtIterator(), canGetMappedAtIterator(), begin(), end() 및 createIteratorAtKey()도 참조하십시오 .
void QMetaAssociation::mappedAtKey(const void *container, const void *key, void *mapped) const
container 내의 key 에 연결된 매핑된 값을 가져와, 가능한 경우 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
가능한 경우, `non-const` ` iterator`가 가리키는 컨테이너 위치에 ` mapped ` 값을 기록합니다.
mappedAtIterator(), canSetMappedAtIterator(), begin(), end() 및 createIteratorAtKey()도 참조하십시오 .
void QMetaAssociation::setMappedAtKey(void *container, const void *key, const void *mapped) const
가능한 경우, 인수로 전달된 mapped 값을 사용하여 container 내의 key 와 연관된 값을 덮어씁니다.
mappedAtKey() 및 canSetMappedAtKey()도 참조하십시오 .
관련 비회원
[noexcept] bool operator!=(const QMetaAssociation &lhs, const QMetaAssociation &rhs)
QMetaAssociation lhs 가 QMetaAssociation rhs 와 다른 컨테이너 유형을 나타내는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
[noexcept] bool operator==(const QMetaAssociation &lhs, const QMetaAssociation &rhs)
QMetaAssociation lhs 가 QMetaAssociation 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.