QMultiHash Class

template <typename Key, typename T> class QMultiHash

QMultiHash 클래스는 다중 값 해시를 제공하는 편리한 QHash 서브클래스입니다. 더 보기...

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

참고: 이 클래스의 모든 함수는 재진입됩니다.

공용 유형

공용 함수

QMultiHash()
QMultiHash(const QHash<Key, T> &other)
QMultiHash(std::initializer_list<std::pair<Key, T>> list)
QMultiHash(InputIterator begin, InputIterator end)
(since 6.4) auto asKeyValueRange() &&
(since 6.4) auto asKeyValueRange() &
(since 6.4) auto asKeyValueRange() const &&
(since 6.4) auto asKeyValueRange() const &
QMultiHash<Key, T>::iterator begin()
QMultiHash<Key, T>::const_iterator begin() const
QMultiHash<Key, T>::const_iterator cbegin() const
QMultiHash<Key, T>::const_iterator cend() const
void clear()
QMultiHash<Key, T>::const_iterator constBegin() const
QMultiHash<Key, T>::const_iterator constEnd() const
QMultiHash<Key, T>::const_iterator constFind(const Key &key, const T &value) const
QMultiHash<Key, T>::const_key_value_iterator constKeyValueBegin() const
QMultiHash<Key, T>::const_key_value_iterator constKeyValueEnd() const
bool contains(const Key &key, const T &value) const
qsizetype count(const Key &key, const T &value) const
QMultiHash<Key, T>::iterator emplace(Key &&key, Args &&... args)
QMultiHash<Key, T>::iterator emplace(const Key &key, Args &&... args)
QMultiHash<Key, T>::iterator emplaceReplace(Key &&key, Args &&... args)
QMultiHash<Key, T>::iterator emplaceReplace(const Key &key, Args &&... args)
QMultiHash<Key, T>::iterator end()
QMultiHash<Key, T>::const_iterator end() const
std::pair<QMultiHash<Key, T>::iterator, QMultiHash<Key, T>::iterator> equal_range(const Key &key)
std::pair<QMultiHash<Key, T>::const_iterator, QMultiHash<Key, T>::const_iterator> equal_range(const Key &key) const
QMultiHash<Key, T>::iterator find(const Key &key, const T &value)
QMultiHash<Key, T>::const_iterator find(const Key &key, const T &value) const
QMultiHash<Key, T>::iterator insert(const Key &key, const T &value)
Key key(const T &value) const
Key key(const T &value, const Key &defaultKey) const
QMultiHash<Key, T>::key_iterator keyBegin() const
QMultiHash<Key, T>::key_iterator keyEnd() const
QMultiHash<Key, T>::key_value_iterator keyValueBegin()
QMultiHash<Key, T>::const_key_value_iterator keyValueBegin() const
QMultiHash<Key, T>::key_value_iterator keyValueEnd()
QMultiHash<Key, T>::const_key_value_iterator keyValueEnd() const
QList<Key> keys() const
qsizetype remove(const Key &key)
qsizetype remove(const Key &key, const T &value)
(since 6.1) qsizetype removeIf(Predicate pred)
QMultiHash<Key, T>::iterator replace(const Key &key, const T &value)
void swap(QMultiHash<Key, T> &other)
T take(const Key &key)
QList<Key> uniqueKeys() const
(since 6.0) QMultiHash<Key, T> &unite(const QHash<Key, T> &other)
QMultiHash<Key, T> &unite(const QMultiHash<Key, T> &other)
T value(const Key &key) const
T value(const Key &key, const T &defaultValue) const
QList<T> values() const
QList<T> values(const Key &key) const
QMultiHash<Key, T> operator+(const QMultiHash<Key, T> &other) const
QMultiHash<Key, T> &operator+=(const QMultiHash<Key, T> &other)
T &operator[](const Key &key)
(since 6.1) qsizetype erase_if(QMultiHash<Key, T> &hash, Predicate pred)
size_t qHash(const QMultiHash<Key, T> &key, size_t seed = 0)
QDataStream &operator<<(QDataStream &out, const QMultiHash<Key, T> &hash)
QDataStream &operator>>(QDataStream &in, QMultiHash<Key, T> &hash)

상세 설명

QMultiHash<Key, T>는 Qt의 일반 컨테이너 클래스 중 하나입니다. QHash 을 상속하고 다중값 해시를 저장하는 데 QHash 보다 더 적합하도록 몇 가지 편의 함수를 추가하여 확장합니다. 다중 값 해시는 동일한 키를 가진 여러 값을 허용하는 해시입니다.

QMultiHash는 대부분 QHash 의 API를 미러링합니다. 예를 들어 isEmpty() 을 사용하여 해시가 비어 있는지 테스트할 수 있으며 QHash 의 이터레이터 클래스(예: QHashIterator)를 사용하여 QMultiHash를 트래버스할 수 있습니다. 하지만 QHash 와는 반대로 insert() 함수를 제공하여 동일한 키로 여러 항목을 삽입할 수 있습니다. replace () 함수는 QHash::insert()에 해당합니다. 또한 편리한 연산자+() 및 연산자+=()도 제공합니다.

QMultiMap 와 달리 QMultiHash는 삽입된 항목의 순서를 제공하지 않습니다. 동일한 키를 공유하는 항목이 가장 최근에 삽입된 값부터 가장 최근에 삽입된 값까지 연속적으로 표시된다는 것만 보장합니다.

예시:

QMultiHash<QString, int> hash1, hash2, hash3;

hash1.insert("plenty", 100);
hash1.insert("plenty", 2000);
// hash1.size() == 2

hash2.insert("plenty", 5000);
// hash2.size() == 1

hash3 = hash1 + hash2;
// hash3.size() == 3

QHash 와 달리 QMultiHash는 연산자[] 를 제공하지 않습니다. 특정 키로 가장 최근에 삽입된 항목에 액세스하려면 value() 또는 replace()를 사용하세요.

단일 키에 대한 모든 값을 검색하려면 QList<T>를 반환하는 값(const Key &key)을 사용할 수 있습니다:

QList<int> values = hash.values("plenty");
for (auto i : std::as_const(values))
    cout << i << endl;

동일한 키를 공유하는 항목은 가장 최근에 삽입된 항목부터 가장 최근에 삽입된 항목까지 사용할 수 있습니다.

더 효율적인 방법은 find()를 호출하여 키가 있는 첫 번째 항목에 대한 STL 스타일 이터레이터를 가져온 다음 거기서부터 반복하는 것입니다:

auto i = hash.constFind("plenty");
while (i != hash.cend() && i.key() == "plenty") {
    cout << i.value() << endl;
    ++i;
}

QMultiHash의 키와 값 데이터 유형은 할당 가능한 데이터 유형이어야 합니다. 예를 들어 QWidget 를 값으로 저장할 수 없으며, 대신 QWidget *를 저장해야 합니다. 또한 QMultiHash의 키 유형은 연산자==()를 제공해야 하며, 키 유형의 인자에 대한 해시값을 반환하는 qHash() 함수도 해당 유형의 네임스페이스에 있어야 합니다. 자세한 내용은 QHash 문서를 참조하세요.

QHash, QHashIterator, QMutableHashIterator, QMultiMap도 참조 하세요.

멤버 타입 문서

QMultiHash::const_key_value_iterator

QMultiHash::const_key_value_iterator typedef는 QMultiHash 에 대한 STL 스타일의 const 이터레이터를 제공합니다.

QMultiHash::const_key_value_iterator는 QMultiHash::const_iterator 와 본질적으로 동일하지만, 연산자*()가 값 대신 키/값 쌍을 반환한다는 차이점이 있습니다.

QKeyValueIterator도 참조하세요 .

QMultiHash::key_value_iterator

QMultiHash::key_value_iterator는 QMultiHash 에 대한 STL 스타일 이터레이터를 제공합니다.

QMultiHash::key_value_iterator는 QMultiHash::iterator 와 본질적으로 동일하지만, 연산자*()가 값 대신 키/값 쌍을 반환한다는 차이점이 있습니다.

QKeyValueIterator도 참조하세요 .

멤버 함수 문서

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplace(Key &&key, Args &&... args)

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplace(const Key &key, Args &&... args)

컨테이너에 새 엘리먼트를 삽입합니다. 이 새 요소는 args 을 구성 인수로 사용하여 제자리에 구성됩니다.

해시에 동일한 키를 가진 항목이 이미 있는 경우 이 함수는 단순히 새 항목을 만듭니다. (이 동작은 기존 항목의 값을 덮어쓰는 replace()와는 다릅니다.)

새 요소를 가리키는 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

insert참조하세요 .

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplaceReplace(Key &&key, Args &&... args)

template <typename... Args> QMultiHash<Key, T>::iterator QMultiHash::emplaceReplace(const Key &key, Args &&... args)

컨테이너에 새 엘리먼트를 삽입합니다. 이 새 요소는 args 을 구성 인수로 사용하여 제자리에 구성됩니다.

해시에 동일한 키를 가진 항목이 이미 있는 경우 해당 항목의 값은 args 에서 생성된 값으로 대체됩니다.

새 요소를 가리키는 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 생성되지 않은 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

replaceemplace참조하세요 .

[noexcept] T QMultiHash::value(const Key &key) const

[noexcept] T QMultiHash::value(const Key &key, const T &defaultValue) const

key 과 연관된 값을 반환합니다.

해시에 key 항목이 없는 경우 defaultValue 또는 이 매개 변수가 제공되지 않은 경우 기본값으로 구성된 값을 반환합니다.

해시에 key 항목이 여러 개 있는 경우 가장 최근에 삽입된 항목의 값이 반환됩니다.

[noexcept] Key QMultiHash::key(const T &value) const

[noexcept] Key QMultiHash::key(const T &value, const Key &defaultKey) const

value 에 매핑된 첫 번째 키를 반환합니다. 해시에 value 에 매핑된 항목이 없는 경우 defaultKey 를 반환하거나 이 매개변수가 제공되지 않은 경우 기본으로 구성된 키를 반환합니다.

QMultiHash 의 내부 데이터 구조는 값이 아닌 키별로 빠르게 조회하도록 최적화되어 있기 때문에 이 함수는 느릴 수 있습니다(선형 시간).

[since 6.4] auto QMultiHash::asKeyValueRange() &

[since 6.4] auto QMultiHash::asKeyValueRange() &&

[since 6.4] auto QMultiHash::asKeyValueRange() const &

[since 6.4] auto QMultiHash::asKeyValueRange() const &&

이 해시를 키/값 쌍으로 반복할 수 있는 범위 객체를 반환합니다. 예를 들어, 이 범위 객체는 구조화된 바인딩 선언과 함께 범위 기반 for 루프에서 사용할 수 있습니다:

QMultiHash<QString, int> hash;
hash.insert("January", 1);
hash.insert("February", 2);
// ...
hash.insert("December", 12);

for (auto [key, value] : hash.asKeyValueRange()) {
    cout << qPrintable(key) << ": " << value << endl;
    --value; // convert to JS month indexing
}

이렇게 얻은 키와 값은 모두 해시에 있는 키와 값에 대한 참조라는 점에 유의하세요. 특히 값을 변경하면 해시 자체가 수정됩니다.

경고: 반환된 이터레이터/참조는 다음에 해시에 대해 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

이 함수는 Qt 6.4에 도입되었습니다.

QKeyValueIterator참조하십시오 .

[noexcept] QMultiHash::QMultiHash()

빈 해시를 생성합니다.

[explicit] QMultiHash::QMultiHash(const QHash<Key, T> &other)

other ( QHash 또는 QMultiHash일 수 있음)의 복사본을 생성합니다.

QMultiHash::QMultiHash(std::initializer_list<std::pair<Key, T>> list)

이니셜라이저 목록에 있는 각 요소의 복사본으로 멀티 해시를 구성합니다 list.

template <typename InputIterator> QMultiHash::QMultiHash(InputIterator begin, InputIterator end)

반복자 범위에 있는 각 요소의 복사본으로 멀티 해시를 구성합니다 [begin, end). 범위로 반복되는 요소는 각각 KeyT 로 변환 가능한 firstsecond 데이터 멤버(예: std::pair)를 가진 객체이거나, 반복기에 각각 Key 로 변환 가능한 키와 T 로 변환 가능한 값을 반환하는 key()value() 멤버 함수를 가져야 합니다.

QMultiHash<Key, T>::iterator QMultiHash::begin()

해시의 첫 번째 항목을 가리키는 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

constBegin() 및 end()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::begin() const

과부하가 걸린 기능입니다.

경고: 반환된 이터레이터/참조는 다음에 해시에 대해 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::cbegin() const

해시의 첫 번째 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

begin() 및 cend()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::cend() const

해시의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

cbegin() 및 end()도 참조하세요 .

[noexcept(...)] void QMultiHash::clear()

해시에서 모든 항목을 제거하고 해시에서 사용하는 모든 메모리를 해제합니다.

참고: 이 함수는 std::is_nothrow_destructible<Node>::valuetrue 인 경우를 제외하고는 사용할 수 없습니다.

remove()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::constBegin() const

해시의 첫 번째 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

begin() 및 constEnd()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::constEnd() const

해시의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

constBegin() 및 end()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::constFind(const Key &key, const T &value) const

해시에 keyvalue 이 포함된 항목을 가리키는 이터레이터를 반환합니다.

해시에 해당 항목이 없는 경우 함수는 constEnd()를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::constKeyValueBegin() const

해시의 첫 번째 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

keyValueBegin()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::constKeyValueEnd() const

해시의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

constKeyValueBegin()도 참조하세요 .

[noexcept] bool QMultiHash::contains(const Key &key, const T &value) const

해시에 keyvalue 항목이 포함된 경우 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

contains()도 참조하세요 .

[noexcept] qsizetype QMultiHash::count(const Key &key, const T &value) const

keyvalue 이 포함된 항목의 수를 반환합니다.

count()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::iterator QMultiHash::end()

해시의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

begin() 및 constEnd()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::end() const

과부하가 걸린 기능입니다.

std::pair<QMultiHash<Key, T>::iterator, QMultiHash<Key, T>::iterator> QMultiHash::equal_range(const Key &key)

key 아래에 저장된 값의 범위를 구분하는 한 쌍의 이터레이터( [first, second))를 반환합니다. 범위가 비어 있으면 두 이터레이터는 모두 end()와 같습니다.

경고: 반환된 이터레이터/참조는 다음에 해시에 대해 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

[noexcept] std::pair<QMultiHash<Key, T>::const_iterator, QMultiHash<Key, T>::const_iterator> QMultiHash::equal_range(const Key &key) const

과부하가 걸린 기능입니다.

경고: 반환된 이터레이터/참조는 다음에 해시에 대해 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

QMultiHash<Key, T>::iterator QMultiHash::find(const Key &key, const T &value)

keyvalue 이 있는 항목을 가리키는 이터레이터를 반환합니다. 해시에 해당 항목이 없는 경우 이 함수는 end()를 반환합니다.

해시에 keyvalue 이 있는 항목이 여러 개 포함된 경우 가장 최근에 삽입된 항목을 가리키는 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

[noexcept] QMultiHash<Key, T>::const_iterator QMultiHash::find(const Key &key, const T &value) const

과부하가 걸린 기능입니다.

경고: 반환된 이터레이터/참조는 다음에 해시에 대해 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

QMultiHash<Key, T>::iterator QMultiHash::insert(const Key &key, const T &value)

key 및 값 value 으로 새 항목을 삽입합니다.

해시에 동일한 키를 가진 항목이 이미 있는 경우 이 함수는 단순히 새 항목을 생성합니다. (이 동작은 기존 항목의 값을 덮어쓰는 replace()와는 다릅니다.)

새 요소를 가리키는 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

replace()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::key_iterator QMultiHash::keyBegin() const

해시의 첫 번째 키를 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

keyEnd()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::key_iterator QMultiHash::keyEnd() const

해시의 마지막 키 뒤에 있는 가상의 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 함수가 아닌 함수를 호출하거나 해시가 파괴될 때 무효화된 것으로 간주해야 합니다.

keyBegin()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::key_value_iterator QMultiHash::keyValueBegin()

해시의 첫 번째 항목을 가리키는 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

keyValueEnd()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::keyValueBegin() const

해시의 첫 번째 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

keyValueEnd()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::key_value_iterator QMultiHash::keyValueEnd()

해시의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

keyValueBegin()도 참조하세요 .

[noexcept] QMultiHash<Key, T>::const_key_value_iterator QMultiHash::keyValueEnd() const

해시의 마지막 항목 뒤에 있는 가상의 항목을 가리키는 상수 STL 스타일 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 const가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

keyValueBegin()도 참조하세요 .

QList<Key> QMultiHash::keys() const

해시의 모든 키가 포함된 목록을 임의의 순서로 반환합니다. 해시에서 여러 번 나타나는 키는 목록에서도 여러 번 나타납니다.

이 순서는 values()에서 사용하는 순서와 동일하게 보장됩니다.

이 함수는 선형 시간으로 새 목록을 생성합니다. keyBegin ()에서 keyEnd()로 반복하면 시간과 메모리 사용을 피할 수 있습니다.

values() 및 key()도 참조하세요 .

qsizetype QMultiHash::remove(const Key &key)

해시에서 key 를 가진 모든 항목을 제거합니다. 제거된 항목의 수를 반환합니다.

remove()도 참조하세요 .

qsizetype QMultiHash::remove(const Key &key, const T &value)

해시에서 keyvalue 값을 가진 모든 항목을 제거합니다. 제거된 항목의 수를 반환합니다.

remove()도 참조하세요 .

[since 6.1] template <typename Predicate> qsizetype QMultiHash::removeIf(Predicate pred)

다중 해시에서 pred 술어가 참을 반환하는 모든 요소를 제거합니다.

이 함수는 QMultiHash<Key, T>::iterator 타입의 인수를 받거나 std::pair<const Key &, T &> 타입의 인수를 받는 술어를 지원합니다.

제거된 엘리먼트가 있으면 그 수를 반환합니다.

이 함수는 Qt 6.1에 도입되었습니다.

clear() 및 take()도 참조하십시오 .

QMultiHash<Key, T>::iterator QMultiHash::replace(const Key &key, const T &value)

key 및 값이 value 인 새 항목을 삽입합니다.

이미 key 값이 있는 항목이 있는 경우 해당 항목의 값은 value 으로 바뀝니다.

key 을 가진 항목이 여러 개 있는 경우 가장 최근에 삽입된 항목의 값이 value 으로 바뀝니다.

새/업데이트된 엘리먼트를 가리키는 이터레이터를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

insert()도 참조하세요 .

[noexcept] void QMultiHash::swap(QMultiHash<Key, T> &other)

이 멀티해시를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.

T QMultiHash::take(const Key &key)

해시에서 key 을 가진 항목을 제거하고 그와 연관된 값을 반환합니다.

해당 항목이 해시에 존재하지 않으면 이 함수는 기본값으로 구성된 값을 반환합니다. 해시에 key 에 대한 항목이 여러 개 있는 경우 가장 최근에 삽입된 항목만 제거됩니다.

반환 값을 사용하지 않는 경우에는 remove()를 사용하는 것이 더 효율적입니다.

remove()도 참조하세요 .

QList<Key> QMultiHash::uniqueKeys() const

맵의 모든 키가 포함된 목록을 반환합니다. 맵에서 여러 번 나타나는 키는 반환된 목록에서 한 번만 나타납니다.

keys() 및 values()도 참조하세요 .

[since 6.0] QMultiHash<Key, T> &QMultiHash::unite(const QHash<Key, T> &other)

other 해시에 있는 모든 항목을 이 해시에 삽입하고 이 해시에 대한 참조를 반환합니다.

이 함수는 Qt 6.0에 도입되었습니다.

insert()도 참조하십시오 .

QMultiHash<Key, T> &QMultiHash::unite(const QMultiHash<Key, T> &other)

other 해시의 모든 항목을 이 해시에 삽입하고 이 해시에 대한 참조를 반환합니다.

insert()도 참조하세요 .

QList<T> QMultiHash::values() const

해시에 있는 모든 값을 임의의 순서로 포함하는 목록을 반환합니다. 키가 여러 값과 연관된 경우 가장 최근에 삽입된 값만 목록에 포함되는 것이 아니라 모든 값이 목록에 포함됩니다.

이 순서는 keys()에서 사용하는 순서와 동일하게 보장됩니다.

이 함수는 선형 시간으로 새 목록을 만듭니다. keyValueBegin ()에서 keyValueEnd()로 반복하면 시간과 메모리 사용을 피할 수 있습니다.

keys() 및 value()도 참조하세요 .

QList<T> QMultiHash::values(const Key &key) const

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

가장 최근에 삽입된 값부터 가장 최근에 삽입된 값까지 key 와 관련된 모든 값의 목록을 반환합니다.

count() 및 insert()도 참조하세요 .

QMultiHash<Key, T> QMultiHash::operator+(const QMultiHash<Key, T> &other) const

other 의 모든 항목에 더해 이 해시의 모든 항목을 포함하는 해시를 반환합니다. 키가 두 해시 모두에 공통인 경우 결과 해시에는 해당 키가 여러 번 포함됩니다.

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

QMultiHash<Key, T> &QMultiHash::operator+=(const QMultiHash<Key, T> &other)

other 해시에 있는 모든 항목을 이 해시에 삽입하고 이 해시에 대한 참조를 반환합니다.

unite() 및 insert()도 참조하세요 .

T &QMultiHash::operator[](const Key &key)

key 에 연결된 값을 수정 가능한 참조로 반환합니다.

해시에 key 이 포함된 항목이 없는 경우 이 함수는 key 이 포함된 해시에 기본으로 구성된 값을 삽입하고 이에 대한 참조를 반환합니다.

해시에 key 이 포함된 항목이 여러 개 있는 경우 이 함수는 가장 최근에 삽입된 값에 대한 참조를 반환합니다.

경고: 반환된 이터레이터/참조는 다음에 해시에서 컨스트가 아닌 함수를 호출하거나 해시가 소멸될 때 무효화된 것으로 간주해야 합니다.

insert() 및 value()도 참조하세요 .

관련 비회원

[since 6.1] template <typename Key, typename T, typename Predicate> qsizetype erase_if(QMultiHash<Key, T> &hash, Predicate pred)

다중 해시 hash 에서 술어 pred 가 참을 반환하는 모든 요소를 제거합니다.

이 함수는 QMultiHash<Key, T>::iterator 타입의 인수를 받거나 std::pair<const Key &, T &> 타입의 인수를 받는 술어를 지원합니다.

제거된 엘리먼트가 있으면 그 수를 반환합니다.

이 함수는 Qt 6.1에 도입되었습니다.

[noexcept(...)] template <typename Key, typename T> size_t qHash(const QMultiHash<Key, T> &key, size_t seed = 0)

seed 을 사용하여 key 에 대한 해시값을 반환합니다.

qHash()는 KeyT 유형을 지원해야 합니다.

참고: 이 함수는 noexcept(qHash(std::declval<Key&>())) && noexcept(qHash(std::declval<T&>()))true 인 경우를 제외하고는 사용할 수 없습니다.

template <typename Key, typename T> QDataStream &operator<<(QDataStream &out, const QMultiHash<Key, T> &hash)

out 을 스트리밍하기 위해 hash 해시를 씁니다.

이 함수는 operator<<() 을 구현하기 위해 키와 값 타입이 필요합니다.

Qt 데이터 유형 직렬화도참조하십시오 .

template <typename Key, typename T> QDataStream &operator>>(QDataStream &in, QMultiHash<Key, T> &hash)

스트림 in 에서 hash 로 해시를 읽습니다.

이 함수는 operator>>() 을 구현하기 위해 키와 값 타입이 필요합니다.

Qt 데이터 유형 직렬화도참조하십시오 .

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