key_iterator Class

class QMultiMap::key_iterator

QMultiMap::key_iterator 클래스는 QMultiMap 키에 대한 STL 스타일 const 이터레이터를 제공합니다. 더 보기...

공용 함수

QMultiMap<Key, T>::const_iterator base() const
bool operator!=(QMultiMap<Key, T>::key_iterator other) const
const Key &operator*() const
QMultiMap<Key, T>::key_iterator &operator++()
QMultiMap<Key, T>::key_iterator operator++(int)
QMultiMap<Key, T>::key_iterator &operator--()
QMultiMap<Key, T>::key_iterator operator--(int)
const Key *operator->() const
bool operator==(QMultiMap<Key, T>::key_iterator other) const

상세 설명

QMultiMap::key_iteratorQMultiMap::const_iterator 와 본질적으로 동일하지만 연산자*() 및 연산자->()는 값 대신 키를 반환한다는 차이점이 있습니다.

대부분의 경우 QMultiMap::iteratorQMultiMap::const_iterator 을 사용해야 하며, QMultiMap::iterator::key()을 호출하여 키에 쉽게 액세스할 수 있습니다:

for (auto it = multimap.cbegin(), end = multimap.cend(); it != end; ++it) {
    cout << "The key: " << it.key() << endl
    cout << "The value: " << qPrintable(it.value()) << endl;
    cout << "Also the value: " << qPrintable(*it) << endl;
}

그러나 QMultiMap 의 키와 STL 스타일 알고리즘 간에 상호 운용성을 가지려면 값 대신 키를 역참조하는 이터레이터가 필요합니다. QMultiMap::key_iterator 을 사용하면 QMultiMap::keys()을 호출하지 않고도 다양한 키에 알고리즘을 적용할 수 있지만, 임시 QList 을 생성하는 데 QMultiMap 반복과 메모리 할당이 필요하므로 비효율적입니다.

// 비효율적, keys()는 비용이 많이 듭니다.QList<int> keys = multimap.keys();int numPrimes = std::count_if(multimap.cbegin(), multimap.cend(), isPrimeNumber);qDeleteAll(multimap2.keys());

// 효율적, 메모리 할당 필요 없음int numPrimes = std::count_if(multimap.keyBegin(), multimap.keyEnd(), isPrimeNumber);qDeleteAll(multimap2.keyBegin(), multimap2.keyEnd());

QMultiMap::key_iterator 가 const이면 키를 수정할 수 없습니다.

기본 QMultiMap::key_iterator 생성자는 초기화되지 않은 이터레이터를 생성합니다. QMultiMap::keyBegin () 또는 QMultiMap::keyEnd()와 같은 QMultiMap 함수를 사용하여 초기화해야 합니다.

경고: 암시적으로 공유되는 컨테이너의 이터레이터는 STL 이터레이터와 똑같이 작동하지 않습니다. 해당 컨테이너에서 이터레이터가 활성화되어 있는 동안에는 컨테이너를 복사하지 않아야 합니다. 자세한 내용은 암시적 공유 이터레이터 문제를 참조하세요.

QMultiMap::const_iteratorQMultiMap::iterator도 참조하세요 .

멤버 함수 문서

QMultiMap<Key, T>::const_iterator key_iterator::base() const

key_iterator 의 기반이 되는 const_iterator 을 반환합니다.

bool key_iterator::operator!=(QMultiMap<Key, T>::key_iterator other) const

other 이 이터레이터와 다른 항목을 가리키면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

operator==()도 참조하세요 .

const Key &key_iterator::operator*() const

현재 항목의 키를 반환합니다.

QMultiMap<Key, T>::key_iterator &key_iterator::operator++()

접두사 ++ 연산자(++i)는 반복자를 해시의 다음 항목으로 전진시키고 반복자를 새 현재 항목으로 반환합니다.

QMultiMap::keyEnd()에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

operator--()도 참조하세요 .

QMultiMap<Key, T>::key_iterator key_iterator::operator++(int)

이 함수는 오버로드된 함수입니다.

후위 ++ 연산자(i++)는 반복자를 해시의 다음 항목으로 전진시키고 반복자를 이전 항목으로 반환합니다.

QMultiMap<Key, T>::key_iterator &key_iterator::operator--()

접두사 -- 연산자(--i)는 이전 항목을 현재 항목으로 만들고 새 현재 항목을 가리키는 이터레이터를 반환합니다.

QMultiMap::keyBegin()에서 이 함수를 호출하면 정의되지 않은 결과가 나타납니다.

operator++()도 참조하세요 .

QMultiMap<Key, T>::key_iterator key_iterator::operator--(int)

이 함수는 오버로드된 함수입니다.

후위 -- 연산자(i--)는 이전 항목을 현재 항목으로 만들고 이전 항목을 가리키는 이터레이터를 반환합니다.

const Key *key_iterator::operator->() const

현재 항목의 키에 대한 포인터를 반환합니다.

bool key_iterator::operator==(QMultiMap<Key, T>::key_iterator other) const

other 이 이터레이터와 동일한 항목을 가리키면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

operator!=()도 참조하세요 .

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