QMetaSequence Class
QMetaSequence 클래스를 사용하면 순차적 컨테이너에 대해 타입이 제거된 방식으로 접근할 수 있습니다. 더 보기...
| 헤더: | #include <QMetaSequence> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 다음부터: | Qt 6.0 |
| 상속: | QMetaContainer |
QMetaSequence 비교
| 범주 | 비교 가능한 유형 |
|---|---|
| 동등성 | QMetaSequence |
공개 유형
(since 6.11) class | Iterable |
공개 함수
| QMetaSequence() | |
| 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에서는 명시적으로 표현되지 않습니다. 따라서 진정한 제네릭 컨테이너의 경우, 모든 쓰기 작업 후에는 모든 이테레이터가 무효한 것으로 간주되어야 합니다.
멤버 함수 문서
[constexpr noexcept default] QMetaSequence::QMetaSequence()
QMetaSequence 의 인스턴스를 기본 생성합니다.
void QMetaSequence::addValue(void *container, const void *value) const
가능한 경우 value 를 container 에 추가합니다. canAddValue()가 false 를 반환하면, value 는 추가되지 않습니다. 그렇지 않은 경우, canAddValueAtEnd()가 true 를 반환하면, value 가 container 의 끝에 추가됩니다. 그렇지 않은 경우, 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
두 이터레이터 사이의 범위를 컨테이너에서 삭제할 수 있으면 ` true `를 반환하고, 그렇지 않으면 ` false `를 반환합니다.
bool QMetaSequence::canEraseValueAtIterator() const
비상수(non-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
기본 컨테이너가 비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
가능한 경우, container 에서 iterator1 및 iterator2 이터레이터 사이의 값 범위를 삭제합니다.
canEraseValueAtIterator(), begin() 및 end()도 참조하십시오 .
void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const
가능한 경우, ` container`에서 ` iterator `(const가 아닌)이 가리키는 값을 지웁니다.
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
가능한 경우, 비상수(non-const) iterator 를 고려하여 value 를 container 에 삽입합니다. 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 을 사용하여 container 내의 index 에 있는 값을 덮어씁니다.
valueAtIndex() 및 canSetValueAtIndex()도 참조하십시오 .
void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const
가능한 경우, 비상수(non-const) 변수 ` iterator`가 가리키는 값에 ` value `를 기록합니다.
valueAtIterator(), canSetValueAtIterator(), begin() 및 end()도 참조하십시오 .
void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const
const iterator 가 가리키는 값을 가져와, 가능한 경우 result 가 가리키는 메모리 위치에 저장합니다.
canGetValueAtConstIterator(), constBegin() 및 constEnd()도 참조하십시오 .
void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const
container 의 index 위치에 있는 값을 가져와, 가능하다면 result 가 가리키는 메모리 위치에 저장합니다.
setValueAtIndex() 및 canGetValueAtIndex()도 참조하십시오 .
void QMetaSequence::valueAtIterator(const void *iterator, void *result) const
비상수(non-const) ` iterator `가 가리키는 값을 가져와, 가능한 경우 ` result`가 가리키는 메모리 위치에 저장합니다.
setValueAtIterator(), canGetValueAtIterator(), begin() 및 end()도 참조하십시오 .
QMetaType QMetaSequence::valueMetaType() const
컨테이너에 저장된 값에 대한 메타 유형을 반환합니다.
관련 비회원
[noexcept, since 6.0] bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)
QMetaSequence lhs 이 QMetaSequence rhs 와 다른 컨테이너 유형을 나타내는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[noexcept, since 6.0] bool operator==(const QMetaSequence &lhs, const QMetaSequence &rhs)
QMetaSequence lhs 가 QMetaSequence rhs 와 동일한 컨테이너 유형을 나타내는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
© 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.