QMultiMapIterator Class

template <typename Key, typename T> class QMultiMapIterator

QMultiMap QMultiMap 에는 Java 스타일 이터레이터와 STL 스타일 이터레이터가 모두 있습니다. STL 스타일 이터레이터가 더 효율적이며 선호됩니다. 더 보기...

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

공용 함수

QMultiMapIterator(const QMultiMap<Key, T> &map)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
const Key &key() const
QMultiMapIterator<Key, T>::Item next()
QMultiMapIterator<Key, T>::Item peekPrevious() const
QMultiMapIterator<Key, T>::Item previous()
void toBack()
void toFront()
const T &value() const
QMultiMapIterator<Key, T> &operator=(const QMultiMap<Key, T> &map)

상세 설명

QMultiMapIterator<Key, T>를 사용하면 QMultiMap 을 반복할 수 있습니다. 반복하면서 지도를 수정하려면 QMutableMultiMapIterator 대신 사용하세요.

QMultiMapIterator 생성자는 QMultiMap 을 인수로 받습니다. 생성 후 이터레이터는 맵의 맨 처음(첫 번째 항목 앞)에 위치합니다. 모든 요소를 순차적으로 반복하는 방법은 다음과 같습니다:

QMultiMap<int, QWidget*> 멀티맵;...QMultiMapIterator<int, QWidget*> i(multimap);while (i.hasNext()) { i.next();    qDebug() << i.key() << ": " << i.value();
}

next() 함수는 맵의 다음 항목을 반환하고 반복기를 진행시킵니다. key () 및 value() 함수는 마지막으로 건너뛴 항목의 키와 값을 반환합니다.

STL 스타일 이터레이터와 달리 Java 스타일 이터레이터는 항목을 직접 가리키지 않고 항목 사이를 가리킵니다. next ()를 처음 호출하면 이터레이터가 첫 번째 항목과 두 번째 항목 사이의 위치로 이동하여 첫 번째 항목을 반환하고, next()를 두 번째로 호출하면 이터레이터가 두 번째 항목과 세 번째 항목 사이의 위치로 이동하는 식으로 진행됩니다.

요소를 역순으로 반복하는 방법은 다음과 같습니다:

QMultiMapIterator<int, QWidget*> i(multimap); i.toBack();while (i.hasPrevious()) { i.previous();    qDebug() << i.key() << ": " << i.value();

특정 값의 모든 항목을 찾으려면 findNext() 또는 findPrevious()를 반복해서 사용합니다. 예를 들어

QMultiMapIterator<int, QWidget*> i(multimap);while (i.findNext(widget)) {...    qDebug() << "Found widget " << widget << " under key "
            << i.key(); }

동일한 맵에 여러 개의 이터레이터를 사용할 수 있습니다. QMultiMapIterator가 활성화되어 있는 동안 지도가 수정되면 QMultiMapIterator는 수정된 복사본을 무시하고 원본 지도를 계속 반복합니다.

QMutableMultiMapIterator참조하십시오 .

멤버 함수 문서

QMultiMapIterator::QMultiMapIterator(const QMultiMap<Key, T> &map)

map 을 트래버스하기 위한 이터레이터를 생성합니다. 이터레이터는 맵의 앞쪽(첫 번째 항목 앞)에 위치하도록 설정됩니다.

operator=()도 참조하세요 .

QMultiMapIterator<Key, T> &QMultiMapIterator::operator=(const QMultiMap<Key, T> &map)

반복자를 map 에서 작동하게 합니다. 이터레이터는 맵의 앞쪽(첫 번째 항목 앞)에 위치하도록 설정됩니다.

toFront() 및 toBack()도 참조하세요 .

void QMultiMapIterator::toFront()

반복기를 컨테이너의 앞쪽(첫 번째 항목 앞)으로 이동합니다.

toBack() 및 next()도 참조하세요 .

void QMultiMapIterator::toBack()

반복기를 컨테이너의 뒤쪽(마지막 항목 뒤)으로 이동합니다.

toFront() 및 previous()도 참조하세요 .

bool QMultiMapIterator::hasNext() const

반복자 앞에 항목이 하나 이상 있는 경우, 즉 반복자가 컨테이너 뒤에 있지 않으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

hasPrevious() 및 next()도 참조하세요 .

QMultiMapIterator<Key, T>::Item QMultiMapIterator::next()

다음 항목을 반환하고 이터레이터를 한 위치 전진시킵니다.

반환 값에서 key()를 호출하여 항목의 키를 가져오고 value()를 호출하여 값을 가져옵니다.

컨테이너 뒤쪽에 있는 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

hasNext(), peekNext() 및 previous()도 참조하세요 .

bool QMultiMapIterator::hasPrevious() const

반복자 뒤에 항목이 하나 이상 있는 경우, 즉 반복자가 컨테이너의 앞에 있지 않으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

hasNext() 및 previous()도 참조하세요 .

QMultiMapIterator<Key, T>::Item QMultiMapIterator::previous()

이전 항목을 반환하고 이터레이터를 한 위치 뒤로 이동합니다.

반환 값에서 key()를 호출하여 항목의 키를 가져오고 value()를 호출하여 값을 가져옵니다.

컨테이너 앞쪽에 있는 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

hasPrevious(), peekPrevious() 및 next()도 참조하세요 .

QMultiMapIterator<Key, T>::Item QMultiMapIterator::peekPrevious() const

이터레이터를 이동하지 않고 이전 항목을 반환합니다.

반환 값에서 key()를 호출하여 항목의 키를 가져오고 value()를 호출하여 값을 가져옵니다.

컨테이너 앞쪽에 있는 이터레이터에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

hasPrevious(), previous() 및 peekNext()도 참조하세요 .

const T &QMultiMapIterator::value() const

트래버스 함수(next(), previous(), findNext(), findPrevious()) 중 하나를 사용하여 마지막으로 건너뛴 항목의 값을 반환합니다.

next() 또는 findNext() 호출 후 value()는 peekPrevious()와 동일합니다.value(). previous () 또는 findPrevious()로 호출한 후 value()는 peekNext()와 동일합니다.value().

key()도 참조하십시오 .

const Key &QMultiMapIterator::key() const

트래버스 함수(next(), previous(), findNext(), findPrevious()) 중 하나를 사용하여 마지막으로 뛰어넘은 항목의 키를 반환합니다.

next() 또는 findNext() 호출 후 key()는 peekPrevious()와 동일합니다.key(). previous () 또는 findPrevious()로 호출한 후 key()는 peekNext()와 동일합니다.key().

value()도 참조하십시오 .

bool QMultiMapIterator::findNext(const T &value)

현재 이터레이터 위치에서 앞으로 value 를 검색합니다. value 값을 가진 (키, 값) 쌍이 발견되면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

호출 후 value 이 발견되면 반복기는 일치하는 항목 바로 뒤에 위치하며, 그렇지 않으면 반복기는 컨테이너의 뒤쪽에 위치합니다.

findPrevious()도 참조하세요 .

bool QMultiMapIterator::findPrevious(const T &value)

현재 이터레이터 위치에서 거꾸로 시작하여 value 를 검색합니다. value 값을 가진 (키, 값) 쌍이 발견되면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

호출 후 value 이 발견되면 일치하는 항목 바로 앞에 반복기가 배치되고, 그렇지 않으면 컨테이너 앞쪽에 반복기가 배치됩니다.

findNext()도 참조하세요 .

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