QMetaContainer Class
QMetaContainer 클래스는 순차적 컨테이너와 연관 컨테이너에 공통적으로 적용되는 기능을 제공합니다. 더 보기...
| 헤더: | #include <QMetaContainer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 다음부터: | Qt 6.0 |
| 상속된 버전: |
QMetaContainer 비교
| 범주 | 비교 가능한 유형 |
|---|---|
| 동등성 | QMetaContainer |
공개 함수
| QMetaContainer() | |
| void | advanceConstIterator(void *iterator, qsizetype step) const |
| void | advanceIterator(void *iterator, qsizetype step) const |
| void * | begin(void *container) const |
| bool | canClear() const |
| void | clear(void *container) const |
| bool | compareConstIterator(const void *i, const void *j) const |
| bool | compareIterator(const void *i, const void *j) const |
| void * | constBegin(const void *container) const |
| void * | constEnd(const void *container) const |
| void | copyConstIterator(void *target, const void *source) const |
| void | copyIterator(void *target, const void *source) const |
| void | destroyConstIterator(const void *iterator) const |
| void | destroyIterator(const void *iterator) const |
| qsizetype | diffConstIterator(const void *i, const void *j) const |
| qsizetype | diffIterator(const void *i, const void *j) const |
| void * | end(void *container) const |
| bool | hasBidirectionalIterator() const |
| bool | hasConstIterator() const |
| bool | hasForwardIterator() const |
| bool | hasInputIterator() const |
| bool | hasIterator() const |
| bool | hasRandomAccessIterator() const |
| bool | hasSize() const |
| qsizetype | size(const void *container) const |
상세 설명
QMetaContainer는 런타임에 컨테이너와 유사한 타입에 타입 지우기를 통해 접근할 수 있게 해주는 Qt의 메타 타입 시스템의 일부입니다.
이 클래스는 실제 컨테이너 유형을 알지 않고도 크기, 반복 및 지우기 작업과 같은 컨테이너의 속성에 일반적인 방식으로 접근할 수 있는 공통 기반 역할을 합니다.
QMetaSequence 와 같은 파생 클래스는 순차적 컨테이너를 위한 특화된 인터페이스를 제공합니다.
멤버 함수 문서
[constexpr noexcept default] QMetaContainer::QMetaContainer()
QMetaContainer 의 인스턴스를 기본 생성합니다.
void QMetaContainer::advanceConstIterator(void *iterator, qsizetype step) const
iterator 상수를 step 단계만큼 앞으로 이동시킵니다. step 가 음수인 경우, iterator 는 컨테이너의 시작 부분 쪽으로 뒤로 이동합니다. hasBidirectionalIterator()가 false를 반환하는 경우, step 의 음수 값에 대한 동작은 정의되지 않습니다.
constBegin() 및 constEnd()도 참조하십시오 .
void QMetaContainer::advanceIterator(void *iterator, qsizetype step) const
iterator (const가 아닌)을 step 단계만큼 앞으로 이동시킵니다. step 가 음수인 경우, iterator 는 컨테이너의 시작 부분 쪽으로 뒤로 이동합니다. hasBidirectionalIterator()이 false를 반환할 때 step 의 값이 음수인 경우의 동작은 정의되지 않습니다.
void *QMetaContainer::begin(void *container) const
container 의 시작 부분을 가리키는 비상수 이터레이터를 생성하여 반환합니다. 이 이터레이터는 new를 사용하여 힙에 할당됩니다. 메모리를 회수하기 위해서는 결국 destroyIterator 를 사용하여 이터레이터를 소멸시켜야 합니다.
컨테이너가 비const 이터레이터를 제공하지 않는 경우 nullptr 를 반환합니다.
end(), constBegin(), constEnd(), destroyIterator()도 참조하십시오 .
bool QMetaContainer::canClear() const
컨테이너를 비울 수 있으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
clear()도 참조하십시오 .
void QMetaContainer::clear(void *container) const
지정된 container 를 지울 수 있는 경우 이를 지웁니다.
canClear()도 참조하십시오 .
bool QMetaContainer::compareConstIterator(const void *i, const void *j) const
상수 이터레이터 i 및 j 가 반복 처리 중인 컨테이너 내에서 동일한 값을 가리키는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
constBegin() 및 constEnd()도 참조하십시오 .
bool QMetaContainer::compareIterator(const void *i, const void *j) const
비상수 이터레이터 i 와 j 가 반복 처리 중인 컨테이너 내에서 동일한 값을 가리키는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
void *QMetaContainer::constBegin(const void *container) const
container 의 시작 부분을 가리키는 const 이터레이터를 생성하여 반환합니다. 이 이터레이터는 new를 사용하여 힙에 할당됩니다. 메모리를 회수하기 위해 결국 destroyConstIterator 를 사용하여 이터레이터를 소멸시켜야 합니다.
컨테이너가 const 이터레이터를 제공하지 않는 경우 nullptr 를 반환합니다.
constEnd(), begin(), end(), destroyConstIterator()도 참조하십시오 .
void *QMetaContainer::constEnd(const void *container) const
container 의 끝을 가리키는 const 이터레이터를 생성하여 반환합니다. 이 이터레이터는 new를 사용하여 힙에 할당됩니다. 메모리를 회수하기 위해 결국 destroyConstIterator 를 사용하여 이터레이터를 소멸시켜야 합니다.
컨테이너가 const 이터레이터를 제공하지 않는 경우 nullptr 를 반환합니다.
constBegin(), begin(), end() 및 destroyConstIterator()도 참조하십시오 .
void QMetaContainer::copyConstIterator(void *target, const void *source) const
const 이터레이터 source 를 const 이터레이터 target 로 복사합니다. 이후 compareConstIterator(target, source)는 true 를 반환합니다.
constBegin() 및 constEnd()도 참조하십시오 .
void QMetaContainer::copyIterator(void *target, const void *source) const
비상수 이터레이터 ` source `를 비상수 이터레이터 ` target`로 복사합니다. 이후 ` compareIterator(target, source)`는 ` true`를 반환합니다.
void QMetaContainer::destroyConstIterator(const void *iterator) const
constBegin() 또는 constEnd()를 사용하여 이전에 생성된 const iterator 를 삭제합니다.
constBegin(), constEnd() 및 destroyIterator()도 참조하십시오 .
void QMetaContainer::destroyIterator(const void *iterator) const
begin() 또는 end()를 통해 이전에 생성된 비상수형 iterator 객체를 파기합니다.
begin(), end() 및 destroyConstIterator()도 참조하십시오 .
qsizetype QMetaContainer::diffConstIterator(const void *i, const void *j) const
const 이터레이터 i 와 j 사이의 거리를 반환하며, 이는 i, -, j 와 동일합니다. 만약 j 가 i 보다 컨테이너의 끝 쪽에 더 가깝다면, 반환 값은 음수입니다. 이 경우 hasBidirectionalIterator()가 false를 반환하면 동작이 정의되지 않습니다.
constBegin() 및 constEnd()도 참조하십시오 .
qsizetype QMetaContainer::diffIterator(const void *i, const void *j) const
비상수 이터레이터 i 와 j 사이의 거리를 반환하며, 이는 i, -, j 와 동일합니다. 만약 j 가 i 보다 컨테이너의 끝 부분에 더 가깝다면, 반환 값은 음수가 됩니다. 이 경우 hasBidirectionalIterator()가 false를 반환하면 동작은 정의되지 않습니다.
void *QMetaContainer::end(void *container) const
container 의 끝을 가리키는 비상수 이터레이터를 생성하여 반환합니다. 이 이터레이터는 new를 사용하여 힙에 할당됩니다. 메모리를 회수하기 위해 결국 destroyIterator 를 사용하여 이터레이터를 소멸시켜야 합니다.
컨테이너가 비const 이터레이터를 제공하지 않는 경우 nullptr 를 반환합니다.
hasIterator(), begin(), constBegin(), constEnd() 및 destroyIterator()도 참조하십시오 .
bool QMetaContainer::hasBidirectionalIterator() const
기본 컨테이너가 각각 std::bidirectional_iterator_tag 및 std::random_access_iterator_tag에 정의된 대로 양방향 이터레이터 또는 임의 접근 이터레이터를 제공하는 경우, true 를 반환합니다. 그렇지 않은 경우 false 를 반환합니다.
QMetaContainer 동일한 컨테이너에 대한 const 및 non-const 이터레이터는 동일한 이터레이터 특성을 갖는다고 가정합니다.
bool QMetaContainer::hasConstIterator() const
기본 컨테이너가 const 이터레이터를 제공하는 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
constBegin(), constEnd(), destroyConstIterator(), compareConstIterator(), diffConstIterator(), advanceConstIterator() 및 copyConstIterator()도 참조하십시오 .
bool QMetaContainer::hasForwardIterator() const
기본 컨테이너가 std::forward_iterator_tag에 정의된 대로 최소한 하나의 전방 이터레이터를 제공하는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다. 양방향 이터레이터와 임의 접근 이터레이터는 전방 이터레이터의 특화형입니다. 또한 컨테이너가 이러한 이터레이터 중 하나를 제공하는 경우 이 메서드는 true 를 반환합니다.
QMetaContainer 동일한 컨테이너에 대한 const 이터레이터와 non-const 이터레이터는 동일한 이터레이터 특성을 갖는다고 가정합니다.
bool QMetaContainer::hasInputIterator() const
기본 컨테이너가 std::input_iterator_tag에 정의된 입력 이터레이터를 하나 이상 제공하는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다. 순방향, 양방향 및 임의 접근 이터레이터는 입력 이터레이터의 특화형입니다. 또한 컨테이너가 이러한 이터레이터 중 하나를 제공하는 경우 이 메서드는 true 를 반환합니다.
QMetaContainer 동일한 컨테이너에 대한 const 및 non-const 이터레이터는 동일한 이터레이터 특성을 갖는다고 가정합니다.
bool QMetaContainer::hasIterator() const
기본 컨테이너가 non-const 이터레이터를 제공하는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
begin(), end(), destroyIterator(), compareIterator(), diffIterator(), advanceIterator() 및 copyIterator()도 참조하십시오 .
bool QMetaContainer::hasRandomAccessIterator() const
기본 컨테이너가 std::random_access_iterator_tag에 정의된 대로 랜덤 액세스 이터레이터를 제공하는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
QMetaContainer 동일한 컨테이너에 대한 const 및 non-const 이터레이터는 동일한 이터레이터 특성을 갖는다고 가정합니다.
bool QMetaContainer::hasSize() const
컨테이너의 크기를 조회할 수 있는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
size()도 참조하십시오 .
qsizetype QMetaContainer::size(const void *container) const
지정된 ` container `의 크기를 조회할 수 있는 경우, 해당 ` `에 포함된 값의 개수를 반환합니다. 그렇지 않은 경우 ` -1`를 반환합니다.
hasSize()도 참조하십시오 .
© 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.