QMultiMap::iterator Class
class QMultiMap::iteratorQMultiMap::iterator 클래스는 ` QMultiMap`에 대한 STL 스타일의 비const 이터레이터를 제공합니다. 더 보기...
공개 유형
공개 함수
| iterator() | |
| const Key & | key() const |
| T & | value() const |
| T & | operator*() const |
| QMultiMap<Key, T>::iterator & | operator++() |
| QMultiMap<Key, T>::iterator | operator++(int) |
| QMultiMap<Key, T>::iterator & | operator--() |
| QMultiMap<Key, T>::iterator | operator--(int) |
| T * | operator->() const |
관련 비멤버
| bool | operator!=(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs) |
| bool | operator==(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs) |
상세 설명
QMultiMap<Key, T>::iterator를 사용하면 QMultiMap 를 순회하고, 특정 키 아래에 저장된 값(키 자체는 제외)을 수정할 수 있습니다. const QMultiMap 를 반복 처리하려면 QMultiMap::const_iterator 를 사용해야 합니다. 일반적으로, 이터레이터를 통해 QMultiMap 를 변경할 필요가 없는 한, non-const QMultiMap 에서도 QMultiMap::const_iterator 를 사용하는 것이 좋습니다. const 이터레이터는 속도가 약간 더 빠르며 코드의 가독성을 높일 수 있습니다.
기본 QMultiMap::iterator 생성자는 초기화되지 않은 이터레이터를 생성합니다. 반복 처리를 시작하기 전에 QMultiMap::begin(), QMultiMap::end(), 또는 QMultiMap::find()과 같은 QMultiMap 함수를 사용하여 이터레이터를 초기화해야 합니다. 다음은 맵에 저장된 모든 (키, 값) 쌍을 출력하는 일반적인 루프 예시입니다:
항목을 임의의 순서로 저장하는 QMultiHash 과 달리, QMultiMap 은 항목을 키 순서대로 저장합니다. 동일한 키를 가진 항목들은 가장 최근에 삽입된 값부터 가장 오래전에 삽입된 값 순으로 연속적으로 나타납니다.
다음은 QMultiMap 에 저장된 모든 값을 2씩 증가시키는 예제입니다:
for (auto i = multimap.begin(), end = multimap.end(); i != end; ++i)
i.value() += 2;QMultiMap 에서 요소를 제거하려면 erase_if(QMultiMap<Key, T> &map, Predicate pred)를 사용할 수 있습니다:
동일한 맵에서 여러 개의 이터레이터를 사용할 수 있습니다. 맵에 항목을 추가하더라도 기존 이터레이터는 유효한 상태를 유지합니다. 맵에서 항목을 제거하면, 제거된 항목을 가리키던 이터레이터는 더 이상 유효하지 않은 이터레이터(dangling iterator)가 됩니다.
경고: 암시적으로 공유되는 컨테이너의이터레이터는 STL 이터레이터와 정확히 동일하게 작동하지 않습니다. 해당 컨테이너에 이터레이터가 활성화된 상태에서는 컨테이너를 복사하지 않도록 해야 합니다. 자세한 내용은 ‘암시적 공유 이터레이터 문제’를 참조하십시오.
QMultiMap::const_iterator, QMultiMap::key_iterator, QMultiMap::key_value_iterator도 참조하십시오 .
멤버 유형 문서
[alias] iterator::iterator_category
이 이터레이터가 양방향 이터레이터임을 나타내는 std::bidirectional_iterator_tag의 동의어입니다.
멤버 함수 문서
[default] iterator::iterator()
초기화되지 않은 이터레이터를 생성합니다.
key(), value() 및 operator++()와 같은 함수는 초기화되지 않은 이터레이터에 대해 호출해서는 안 됩니다. 사용하기 전에 operator=()를 사용하여 값을 할당하십시오.
QMultiMap::begin() 및 QMultiMap::end()도 참조하십시오 .
const Key &iterator::key() const
현재 항목의 키를 const 참조로 반환합니다.
이터레이터를 통해 항목의 키를 직접 변경하는 방법은 없지만, ` QMultiMap::erase()`를 호출한 후 ` QMultiMap::insert()`를 호출하면 가능합니다.
value()도 참조하십시오 .
T &iterator::value() const
현재 항목의 값에 대한 수정 가능한 참조를 반환합니다.
할당문의 왼쪽에 value()를 사용하여 항목의 값을 변경할 수 있습니다. 예를 들면 다음과 같습니다.
if (i.key() == "Hello")
i.value() = "Bonjour";T &iterator::operator*() const
현재 항목의 값에 대한 수정 가능한 참조를 반환합니다.
value()와 동일합니다.
key()도 참조하십시오 .
QMultiMap<Key, T>::iterator &iterator::operator++()
++ 연산자(++i)는 이터레이터를 멀티 맵의 다음 항목으로 이동시키고, 새로운 현재 항목에 대한 이터레이터를 반환합니다.
QMultiMap::end()에서 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.
operator--()도 참조하십시오 .
QMultiMap<Key, T>::iterator iterator::operator++(int)
후치 연산자 ` ++ `(i++)는 이터레이터를 멀티 맵의 다음 항목으로 이동시키고, 이전에 현재 항목이었던 항목에 대한 이터레이터를 반환합니다.
이는 오버로드된 함수입니다.
QMultiMap<Key, T>::iterator &iterator::operator--()
-- 연산자(--i)는 앞의 항목을 현재 항목으로 설정하고, 새로운 현재 항목을 가리키는 이터레이터를 반환합니다.
QMultiMap::begin()에 대해 이 함수를 호출하면 정의되지 않은 결과가 발생합니다.
operator++()도 참조하십시오 .
QMultiMap<Key, T>::iterator iterator::operator--(int)
후치 연산자 ` -- `(i--)는 바로 앞의 항목을 현재 항목으로 지정하고, 이전에 현재 항목이었던 항목을 가리키는 이터레이터를 반환합니다.
이는 오버로드된 함수입니다.
T *iterator::operator->() const
현재 항목의 값에 대한 포인터를 반환합니다.
value()도 참조하십시오 .
관련 비멤버 함수
bool operator!=(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)
lhs 가 rhs 이터레이터와 다른 항목을 가리키는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
operator==()도 참조하십시오 .
bool operator==(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)
lhs 가 rhs 이터레이터와 동일한 항목을 가리키는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
operator!=()도 참조하십시오 .
© 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.