이 페이지에서

QMutableSetIterator Class

template <typename T> class QMutableSetIterator

QMutableSetIterator 클래스는 ` QSet`에 대한 Java 스타일의 비상수 이터레이터를 제공합니다. 더 보기...

헤더: #include <QMutableSetIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

공개 함수

QMutableSetIterator(QSet<T> &set)
bool findNext(const T &value)
bool hasNext() const
const T &next()
const T &peekNext() const
void remove()
void toBack()
void toFront()
const T &value() const
QMutableSetIterator<T> &operator=(QSet<T> &set)

상세 설명

QSet Java 스타일 이터레이터와 STL 스타일 이터레이터를 모두 지원합니다. STL 스타일 이터레이터가 더 효율적이므로 이를 우선적으로 사용해야 합니다. 템플릿 매개변수 T 는 세트에 저장된 항목의 유형을 지정합니다.

QMutableSetIterator<T>를 사용하면 QSet<T>를 순회하면서 세트에서 항목을 제거할 수 있습니다. 세트를 수정하지 않으려는 경우(또는 const QSet 를 사용하는 경우)에는 대신 약간 더 빠른 QSetIterator<T>를 사용하십시오.

QMutableSetIterator 생성자는 QSet 를 인수로 받습니다. 생성 후, 이터레이터는 세트의 맨 앞(첫 번째 항목 앞)에 위치하게 됩니다. 모든 요소를 순차적으로 반복하는 방법은 다음과 같습니다.

QSet<float> set;
//...
QMutableSetIterator<float> i(set);
while (i.hasNext())
    float f = i.next();

next() 함수는 집합 내의 다음 항목을 반환하고 이터레이터를 다음 위치로 이동시킵니다. STL 스타일의 이터레이터와 달리, Java 스타일의 이터레이터는 항목을 직접 가리키기보다는 항목 사이를 가리킵니다. next()을 처음 호출하면 이터레이터가 첫 번째 요소와 두 번째 요소 사이의 위치로 이동하고 첫 번째 요소를 반환합니다. next()을 두 번째로 호출하면 이터레이터가 두 번째 요소와 세 번째 요소 사이의 위치로 이동하여 두 번째 요소를 반환하며, 이와 같은 방식으로 진행됩니다.

항목 A, B, C, D 사이의 이터레이터 위치

세트를 순회하면서 항목을 제거하려면 ` remove()`를 사용하십시오.

주어진 세트에서는 한 번에 하나의 가변 이터레이터만 활성화될 수 있습니다. 또한, 이터레이터가 활성화된 동안에는 (이터레이터를 통하지 않고) 세트에 직접 변경을 가해서는 안 됩니다. 이는 이터레이터를 무효화하여 정의되지 않은 동작을 유발할 수 있기 때문입니다.

QSetIterator 및 QSet::iterator도 참조하십시오 .

멤버 함수 설명서

QMutableSetIterator::QMutableSetIterator(QSet<T> &set)

set 를 순회하기 위한 반복자를 생성합니다. 이 반복자는 집합의 맨 앞(첫 번째 항목 앞)에 위치하도록 설정됩니다.

operator=()도 참조하십시오 .

bool QMutableSetIterator::findNext(const T &value)

현재 이터레이터 위치부터 앞으로 ‘ value ’을 검색합니다. ‘ value ’이 발견되면 ‘ true ’을 반환하고, 그렇지 않으면 ‘ false ’을 반환합니다.

호출 후, value 가 발견된 경우 이터레이터는 일치하는 항목 바로 뒤의 위치로 이동하며, 그렇지 않은 경우 이터레이터는 컨테이너의 맨 뒤 위치로 이동합니다.

bool QMutableSetIterator::hasNext() const

이테레이터 앞에 항목이 하나 이상 있는 경우, 즉 이테레이터가 컨테이너의 맨 뒤에 있지 않은 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

next()도 참조하십시오 .

const T &QMutableSetIterator::next()

다음 항목을 반환하고 이터레이터를 한 칸 앞으로 이동시킵니다.

컨테이너의 맨 끝에 위치한 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.

hasNext() 및 peekNext()도 참조하십시오 .

const T &QMutableSetIterator::peekNext() const

이터레이터를 이동시키지 않고 다음 항목을 반환합니다.

컨테이너의 맨 끝에 위치한 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.

hasNext() 및 next()도 참조하십시오 .

void QMutableSetIterator::remove()

탐색 함수 중 하나(next(), findNext())를 사용하여 건너뛴 마지막 항목을 제거합니다.

예시:

QMutableSetIterator<int> i(set);
while (i.hasNext()) {
    int val = i.next();
    if (val < -32768 || val > 32767)
        i.remove();
}

value()도 참조하십시오 .

void QMutableSetIterator::toBack()

이테레이터를 컨테이너의 맨 뒤(마지막 항목 뒤)로 이동합니다.

toFront()도 참조하십시오 .

void QMutableSetIterator::toFront()

이테레이터를 컨테이너의 맨 앞(첫 번째 항목 앞)으로 이동합니다.

toBack() 및 next()도 참조하십시오 .

const T &QMutableSetIterator::value() const

next() 또는 findNext()을 사용하여 건너뛴 마지막 항목의 값을 반환합니다.

QMutableSetIterator<T> &QMutableSetIterator::operator=(QSet<T> &set)

이테레이터가 ` set`에서 작동하도록 합니다. 이테레이터는 집합의 맨 앞(첫 번째 항목 앞)에 위치하도록 설정됩니다.

toFront() 및 toBack()도 참조하십시오 .

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