QMetaSequence Class

QMetaSequence 클래스는 순차적 컨테이너에 대한 유형 지우기 액세스를 허용합니다. 더 보기...

Header: #include <QMetaSequence>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
이후: Qt 6.0
상속합니다: 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*를 피연산자로 사용하는 여러 가지 원시 컨테이너 연산을 제공합니다. 이렇게 하면 변종에서 검색된 일반 컨테이너를 그 유형을 몰라도 조작할 수 있습니다.

다양한 메서드의 void* 인수는 일반적으로 해당 컨테이너 또는 값 유형의 QVariant 를 사용하고 QVariant::data() 또는 QVariant::constData() 메서드를 호출하여 생성됩니다. 그러나 컨테이너 또는 값 유형의 객체에 대한 일반 포인터를 전달할 수도 있습니다.

이터레이터 무효화는 기본 컨테이너에서 제공하는 규칙을 따르며 API에는 표현되지 않습니다. 따라서 진정한 일반 컨테이너의 경우 모든 이터레이터는 쓰기 작업 후에 유효하지 않은 것으로 간주해야 합니다.

멤버 함수 문서

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

가능하면 valuecontainer 에 추가합니다. 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

두 이터레이터 사이의 범위를 컨테이너에서 지울 수 있으면 true, 그렇지 않으면 false 을 반환합니다.

bool QMetaSequence::canEraseValueAtIterator() 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

기본 컨테이너가 컨스트가 아닌 이터레이터가 가리키는 값을 검색할 수 있으면 true, 그렇지 않으면 false 을 반환합니다.

hasIterator() 및 valueAtIterator()도 참조하세요 .

bool QMetaSequence::canInsertValueAtIterator() 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

기본 컨테이너가 컨스트가 아닌 이터레이터가 가리키는 값에 쓸 수 있으면 true, 그렇지 않으면 false 을 반환합니다.

hasIterator() 및 setValueAtIterator()도 참조하세요 .

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

가능한 경우 container 에서 iterator1iterator2 사이의 값 범위를 지웁니다.

canEraseValueAtIterator(), begin() 및 end()도 참조하세요 .

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

가능하면 container 에서 참조하지 않는 iterator 이 가리키는 값을 지웁니다.

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

가능하면 containervalue 을 삽입하고, 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

가능하면 value 을 참조하지 않는 값 iterator 이 가리키는 값에 씁니다.

valueAtIterator(), canSetValueAtIterator(), begin() 및 end()도 참조하세요 .

void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) 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

논컨스트 iterator 가 가리키는 값을 검색하여 가능하면 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에 도입되었습니다.

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