QMap Class

template <typename Key, typename T> class QMap

QMap 클래스는 연관 배열을 제공하는 템플릿 클래스입니다. 더 보기...

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

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

공용 유형

공용 함수

QMap()
QMap(const std::map<Key, T> &other)
QMap(std::initializer_list<std::pair<Key, T>> list)
QMap(std::map<Key, T> &&other)
QMap(const QMap<Key, T> &other)
QMap(QMap<Key, T> &&other)
~QMap()
(since 6.4) auto asKeyValueRange() &&
(since 6.4) auto asKeyValueRange() &
(since 6.4) auto asKeyValueRange() const &&
(since 6.4) auto asKeyValueRange() const &
QMap<Key, T>::iterator begin()
QMap<Key, T>::const_iterator begin() const
QMap<Key, T>::const_iterator cbegin() const
QMap<Key, T>::const_iterator cend() const
void clear()
QMap<Key, T>::const_iterator constBegin() const
QMap<Key, T>::const_iterator constEnd() const
QMap<Key, T>::const_iterator constFind(const Key &key) const
QMap<Key, T>::const_key_value_iterator constKeyValueBegin() const
QMap<Key, T>::const_key_value_iterator constKeyValueEnd() const
bool contains(const Key &key) const
QMap<Key, T>::size_type count(const Key &key) const
QMap<Key, T>::size_type count() const
bool empty() const
QMap<Key, T>::iterator end()
QMap<Key, T>::const_iterator end() const
std::pair<QMap<Key, T>::iterator, QMap<Key, T>::iterator> equal_range(const Key &key)
std::pair<QMap<Key, T>::const_iterator, QMap<Key, T>::const_iterator> equal_range(const Key &key) const
QMap<Key, T>::iterator erase(QMap<Key, T>::const_iterator pos)
(since 6.0) QMap<Key, T>::iterator erase(QMap<Key, T>::const_iterator first, QMap<Key, T>::const_iterator last)
QMap<Key, T>::iterator find(const Key &key)
QMap<Key, T>::const_iterator find(const Key &key) const
T &first()
const T &first() const
const Key &firstKey() const
void insert(QMap<Key, T> &&map)
void insert(const QMap<Key, T> &map)
QMap<Key, T>::iterator insert(const Key &key, const T &value)
QMap<Key, T>::iterator insert(QMap<Key, T>::const_iterator pos, const Key &key, const T &value)
bool isEmpty() const
Key key(const T &value, const Key &defaultKey = Key()) const
QMap<Key, T>::key_iterator keyBegin() const
QMap<Key, T>::key_iterator keyEnd() const
QMap<Key, T>::key_value_iterator keyValueBegin()
QMap<Key, T>::const_key_value_iterator keyValueBegin() const
QMap<Key, T>::key_value_iterator keyValueEnd()
QMap<Key, T>::const_key_value_iterator keyValueEnd() const
QList<Key> keys() const
QList<Key> keys(const T &value) const
T &last()
const T &last() const
const Key &lastKey() const
QMap<Key, T>::iterator lowerBound(const Key &key)
QMap<Key, T>::const_iterator lowerBound(const Key &key) const
QMap<Key, T>::size_type remove(const Key &key)
(since 6.1) QMap<Key, T>::size_type removeIf(Predicate pred)
QMap<Key, T>::size_type size() const
void swap(QMap<Key, T> &other)
T take(const Key &key)
std::map<Key, T> toStdMap() const &
(since 6.0) std::map<Key, T> toStdMap() &&
QMap<Key, T>::iterator upperBound(const Key &key)
QMap<Key, T>::const_iterator upperBound(const Key &key) const
T value(const Key &key, const T &defaultValue = T()) const
QList<T> values() const
QMap<Key, T> &operator=(QMap<Key, T> &&other)
QMap<Key, T> &operator=(const QMap<Key, T> &other)
T &operator[](const Key &key)
T operator[](const Key &key) const
(since 6.1) qsizetype erase_if(QMap<Key, T> &map, Predicate pred)
(since 6.8) size_t qHash(const QMap<Key, T> &key, size_t seed = 0)
bool operator!=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
QDataStream &operator<<(QDataStream &out, const QMap<Key, T> &map)
bool operator==(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
QDataStream &operator>>(QDataStream &in, QMap<Key, T> &map)

상세 설명

QMap<Key, T>는 Qt의 일반 컨테이너 클래스 중 하나입니다. (키, 값) 쌍을 저장하고 키별로 빠른 조회를 제공합니다.

QMap과 QHash 은 매우 유사한 기능을 제공합니다. 차이점은 다음과 같습니다:

  • QHash 는 QMap보다 평균적으로 빠른 조회를 제공합니다. (자세한 내용은 알고리즘 복잡성을 참조하세요.)
  • QHash 를 반복할 때 항목은 임의로 정렬됩니다. QMap을 사용하면 항목은 항상 키별로 정렬됩니다.
  • QHash 의 키 유형은 연산자==() 및 전역 qHash(키) 함수를 제공해야 합니다. QMap의 키 타입은 전체 순서를 지정하는 연산자<()를 제공해야 합니다. Qt 5.8.1부터는 기본 연산자<()가 총 순서를 제공하지 않더라도 포인터 타입을 키로 사용하는 것도 안전합니다.

다음은 QString 키와 int 값을 가진 QMap 예제입니다:

QMap<QString, int> map;

맵에 (키, 값) 쌍을 삽입하려면 연산자[]()를 사용하면 됩니다:

map["one"] = 1;
map["three"] = 3;
map["seven"] = 7;

그러면 다음 세 개의 (키, 값) 쌍이 QMap에 삽입됩니다: ("one", 1), ("three", 3), ("seven", 7). 맵에 항목을 삽입하는 또 다른 방법은 insert()를 사용하는 것입니다:

map.insert("twelve", 12);

값을 조회하려면 operator[]() 또는 value()를 사용합니다:

int num1 = map["thirteen"];
int num2 = map.value("thirteen");

맵에 지정된 키를 가진 항목이 없는 경우 이 함수는 기본적으로 구성된 값을 반환합니다.

맵에 특정 키가 포함되어 있는지 확인하려면 contains()를 사용하세요:

int timeout = 30;
if (map.contains("TIMEOUT"))
    timeout = map.value("TIMEOUT");

지정된 키를 가진 항목이 없는 경우 두 번째 인수를 기본값으로 사용하는 value() 오버로드도 있습니다:

int timeout = map.value("TIMEOUT", 30);

일반적으로 맵에서 키를 조회할 때는 operator[]() 대신 contains() 및 value()를 사용하는 것이 좋습니다. 그 이유는 연산자[]()는 동일한 키를 가진 항목이 존재하지 않는 경우(맵이 const가 아닌 경우) 자동으로 맵에 항목을 삽입하기 때문입니다. 예를 들어 다음 코드 조각은 메모리에 1000개의 항목을 생성합니다:

// WRONG
QMap<int, QWidget *> map;
...
for (int i = 0; i < 1000; ++i) {
    if (map[i] == okButton)
        cout << "Found button at index " << i << endl;
}

이 문제를 방지하려면 위 코드에서 map[i]map.value(i) 으로 바꾸세요.

QMap에 저장된 모든 (키, 값) 쌍을 탐색하려면 반복기를 사용할 수 있습니다. QMap은 Java 스타일 이터레이터 (QMapIteratorQMutableMapIterator)와 STL 스타일 이터레이터 (QMap::const_iteratorQMap::iterator)를 모두 제공합니다. 다음은 Java 스타일 이터레이터를 사용하여 QMap<QString, int>을 반복하는 방법입니다:

QMapIterator<QString, int> i(map);
while (i.hasNext()) {
    i.next();
    cout << qPrintable(i.key()) << ": " << i.value() << endl;
}

다음은 동일한 코드이지만 이번에는 STL 스타일 이터레이터를 사용합니다:

for (auto i = map.cbegin(), end = map.cend(); i != end; ++i)
    cout << qPrintable(i.key()) << ": " << i.value() << endl;

항목은 오름차순 키 순서로 순회됩니다.

QMap은 키당 하나의 값만 허용합니다. QMap에 이미 존재하는 키로 insert()를 호출하면 이전 값이 지워집니다. 예를 들어:

map.insert("plenty", 100);
map.insert("plenty", 2000);
// map.value("plenty") == 2000

그러나 QMultiMap 을 사용하여 키당 여러 값을 저장할 수 있습니다.

키가 아닌 맵에서 값만 추출해야 하는 경우 범위 기반 for를 사용할 수도 있습니다:

QMap<QString, int> map;
...
for (int value : std::as_const(map))
    cout << value << endl;

여러 가지 방법으로 맵에서 항목을 제거할 수 있습니다. 한 가지 방법은 remove()를 호출하는 것입니다. 그러면 지정된 키가 있는 모든 항목이 제거됩니다. 또 다른 방법은 QMutableMapIterator::remove()를 사용하는 것입니다. 또한 clear()를 사용하여 전체 맵을 지울 수도 있습니다.

QMap의 키 및 값 데이터 유형은 할당 가능한 데이터 유형이어야 합니다. 여기에는 대부분의 데이터 유형이 포함되지만, 예를 들어 컴파일러는 QWidget 를 값으로 저장하는 대신 QWidget *를 저장하도록 허용하지 않습니다. 또한 QMap의 키 유형은 연산자<()를 제공해야 합니다. QMap은 이를 사용하여 항목을 정렬하고, x < y 또는 y < x 모두 참이 아닌 경우 xy 두 키가 동일하다고 가정합니다.

예시:

#ifndef EMPLOYEE_H
#define EMPLOYEE_H

class Employee
{
public:
    Employee() {}
    Employee(const QString &name, QDate dateOfBirth);
    ...

private:
    QString myName;
    QDate myDateOfBirth;
};

inline bool operator<(const Employee &e1, const Employee &e2)
{
    if (e1.name() != e2.name())
        return e1.name() < e2.name();
    return e1.dateOfBirth() < e2.dateOfBirth();
}

#endif // EMPLOYEE_H

이 예에서는 직원의 이름을 비교하는 것으로 시작합니다. 이름이 같으면 생년월일을 비교하여 동률을 깨뜨립니다.

QMapIterator, QMutableMapIterator, QHash, QSet참조하세요 .

구성원 유형 문서

QMap::ConstIterator

QMap::const_iterator 의 Qt 스타일 동의어.

QMap::Iterator

QMap::iterator 의 Qt 스타일 동의어.

QMap::const_key_value_iterator

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

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

QKeyValueIterator도 참조하세요 .

[alias] QMap::difference_type

ptrdiff_t의 경우 Typedef. STL 호환성을 위해 제공됩니다.

[alias] QMap::key_type

키에 Typedef. STL 호환성을 위해 제공됩니다.

QMap::key_value_iterator

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

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

QKeyValueIterator도 참조하세요 .

[alias] QMap::mapped_type

STL 호환성을 위해 제공되는 T용 Typedef입니다.

[alias] QMap::size_type

int. STL 호환성을 위해 제공됩니다.

멤버 함수 문서

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

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

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

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

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

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

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

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

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

QKeyValueIterator참조하세요 .

QMap::QMap()

빈 맵을 생성합니다.

clear()도 참조하세요 .

[explicit] QMap::QMap(const std::map<Key, T> &other)

other 의 복사본을 생성합니다.

toStdMap()도 참조하세요 .

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

이니셜라이저 목록에 있는 각 요소의 복사본으로 맵을 구성합니다 list.

[explicit] QMap::QMap(std::map<Key, T> &&other)

other 에서 이동하여 지도를 구축합니다.

toStdMap()도 참조하세요 .

[default] QMap::QMap(const QMap<Key, T> &other)

other 의 복사본을 생성합니다.

이 작업은 QMap이 암시적으로 공유되기 때문에 상수 시간에 발생합니다. 따라서 함수에서 QMap을 반환하는 속도가 매우 빠릅니다. 공유 인스턴스가 수정되면 복사(쓰기 시 복사)되므로 시간이 선형적으로 소요됩니다.

operator=참조하세요 .

[default] QMap::QMap(QMap<Key, T> &&other)

이동 - QMap 인스턴스를 생성합니다.

[default] QMap::~QMap()

맵을 삭제합니다. 맵의 값에 대한 참조와 이 맵에 대한 모든 이터레이터가 무효화됩니다.

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

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

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

QMap<Key, T>::const_iterator QMap::begin() const

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

QMap<Key, T>::const_iterator QMap::cbegin() const

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

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

QMap<Key, T>::const_iterator QMap::cend() const

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

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

void QMap::clear()

지도에서 모든 항목을 제거합니다.

remove()도 참조하세요 .

QMap<Key, T>::const_iterator QMap::constBegin() const

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

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

QMap<Key, T>::const_iterator QMap::constEnd() const

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

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

QMap<Key, T>::const_iterator QMap::constFind(const Key &key) const

맵에서 key 키를 가진 항목을 가리키는 const 이터레이터를 반환합니다.

맵에 key 키가 있는 항목이 없는 경우 이 함수는 constEnd()을 반환합니다.

find()도 참조하세요 .

QMap<Key, T>::const_key_value_iterator QMap::constKeyValueBegin() const

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

keyValueBegin()도 참조하세요 .

QMap<Key, T>::const_key_value_iterator QMap::constKeyValueEnd() const

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

constKeyValueBegin()도 참조하세요 .

bool QMap::contains(const Key &key) const

맵에 키가 key 인 항목이 포함되어 있으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

count()도 참조하세요 .

QMap<Key, T>::size_type QMap::count(const Key &key) const

키와 연관된 항목 수를 반환합니다 key.

contains()도 참조하세요 .

QMap<Key, T>::size_type QMap::count() const

이 함수는 과부하된 함수입니다.

size()와 동일합니다.

bool QMap::empty() const

이 함수는 STL 호환성을 위해 제공됩니다. isEmpty ()와 동일하며, 맵이 비어 있으면 참을 반환하고 그렇지 않으면 거짓을 반환합니다.

QMap<Key, T>::iterator QMap::end()

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

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

QMap<Key, T>::const_iterator QMap::end() const

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

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

key 에 저장된 값의 범위를 구분하는 한 쌍의 이터레이터( [first, second))를 반환합니다.

std::pair<QMap<Key, T>::const_iterator, QMap<Key, T>::const_iterator> QMap::equal_range(const Key &key) const

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

QMap<Key, T>::iterator QMap::erase(QMap<Key, T>::const_iterator pos)

반복자 pos 가 가리키는 (키, 값) 쌍을 맵에서 제거하고 반복자를 맵의 다음 항목으로 반환합니다.

참고: 이터레이터 pos 는 유효하고 역참조 가능해야 합니다.

remove()도 참조하세요 .

[since 6.0] QMap<Key, T>::iterator QMap::erase(QMap<Key, T>::const_iterator first, QMap<Key, T>::const_iterator last)

반복자 범위 [first, last)가 가리키는 (키, 값) 쌍을 맵에서 제거합니다. 마지막으로 제거된 요소 다음에 있는 맵의 항목에 대한 이터레이터를 반환합니다.

참고: [first, last) 범위는 *this 에서 유효한 범위여야 합니다.

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

remove()도 참조하세요 .

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

맵에서 key 키를 가진 항목을 가리키는 이터레이터를 반환합니다.

맵에 key 키가 있는 항목이 없는 경우 이 함수는 end()을 반환합니다.

constFind(), value(), values(), lowerBound() 및 upperBound()도 참조하세요 .

QMap<Key, T>::const_iterator QMap::find(const Key &key) const

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

T &QMap::first()

맵의 첫 번째 값, 즉 가장 작은 키에 매핑된 값에 대한 참조를 반환합니다. 이 함수는 맵이 비어 있지 않다고 가정합니다.

공유되지 않은 경우(또는 const 버전이 호출된 경우) 상수 시간에 실행됩니다.

last(), firstKey() 및 isEmpty()도 참조하세요 .

const T &QMap::first() const

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

const Key &QMap::firstKey() const

맵에서 가장 작은 키에 대한 참조를 반환합니다. 이 함수는 맵이 비어 있지 않다고 가정합니다.

이 함수는 상수 시간에 실행됩니다.

lastKey(), first(), keyBegin() 및 isEmpty()도 참조하세요 .

void QMap::insert(QMap<Key, T> &&map)

map 의 모든 항목을 이 맵으로 이동합니다.

키가 두 맵에 공통인 경우 해당 값은 map 에 저장된 값으로 바뀝니다.

map 을 공유하면 항목이 대신 복사됩니다.

void QMap::insert(const QMap<Key, T> &map)

map 의 모든 항목을 이 맵에 삽입합니다.

키가 두 맵에 공통인 경우 해당 값은 map 에 저장된 값으로 바뀝니다.

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

키가 key 이고 값이 value 인 새 항목을 삽입합니다.

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

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

QMap<Key, T>::iterator QMap::insert(QMap<Key, T>::const_iterator pos, const Key &key, const T &value)

이 함수는 과부하된 함수입니다.

key 및 값 value, 힌트 pos 를 사용하여 삽입할 위치를 제안하는 새 항목을 삽입합니다.

constBegin()가 힌트로 사용되는 경우 key 이 맵의 어떤 키보다 작다는 것을 나타내며 constEnd()는 key 이 맵의 어떤 키보다 (엄격하게) 크다는 것을 나타냅니다. 그렇지 않으면 힌트가 조건(pos - 1)을 충족해야 합니다.key() < key <= 위치.key(). pos 힌트가 잘못되면 무시되고 일반 삽입이 수행됩니다.

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

힌트가 맞고 맵이 공유되지 않은 경우 삽입은 상각된 상수 시간으로 실행됩니다.

정렬된 데이터로 맵을 만들 때 가장 큰 키를 먼저 constBegin()로 삽입하는 것이 constEnd()로 정렬된 순서대로 삽입하는 것보다 빠릅니다. constEnd() - 1(힌트가 유효한지 확인하는 데 필요한)은 로그 시간이 필요하기 때문입니다.

참고: 힌트에 주의하세요. 이전 공유 인스턴스에서 이터레이터를 제공하면 충돌이 발생할 수 있으며 맵과 pos 맵이 모두 자동으로 손상될 위험도 있습니다.

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

bool QMap::isEmpty() const

맵에 항목이 없는 경우 true 을 반환하고, 그렇지 않으면 false를 반환합니다.

size()도 참조하세요 .

Key QMap::key(const T &value, const Key &defaultKey = Key()) const

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

값이 value 인 첫 번째 키를 반환하거나 맵에 값이 value 인 항목이 없는 경우 defaultKey 을 반환합니다. defaultKey 이 제공되지 않으면 이 함수는 기본적으로 구성된 키를 반환합니다.

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

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

QMap<Key, T>::key_iterator QMap::keyBegin() const

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

keyEnd() 및 firstKey()도 참조하세요 .

QMap<Key, T>::key_iterator QMap::keyEnd() const

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

keyBegin() 및 lastKey()도 참조하세요 .

QMap<Key, T>::key_value_iterator QMap::keyValueBegin()

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

keyValueEnd()도 참조하세요 .

QMap<Key, T>::const_key_value_iterator QMap::keyValueBegin() const

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

keyValueEnd()도 참조하세요 .

QMap<Key, T>::key_value_iterator QMap::keyValueEnd()

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

keyValueBegin()도 참조하세요 .

QMap<Key, T>::const_key_value_iterator QMap::keyValueEnd() const

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

keyValueBegin()도 참조하세요 .

QList<Key> QMap::keys() const

맵의 모든 키가 오름차순으로 포함된 목록을 반환합니다.

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

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

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

QList<Key> QMap::keys(const T &value) const

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

value 값과 관련된 모든 키가 오름차순으로 포함된 목록을 반환합니다.

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

T &QMap::last()

맵의 마지막 값, 즉 가장 큰 키에 매핑된 값에 대한 참조를 반환합니다. 이 함수는 맵이 비어 있지 않다고 가정합니다.

공유되지 않은 경우(또는 const 버전이 호출된 경우) 로그 시간으로 실행됩니다.

first(), lastKey() 및 isEmpty()도 참조하세요 .

const T &QMap::last() const

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

const Key &QMap::lastKey() const

맵에서 가장 큰 키에 대한 참조를 반환합니다. 이 함수는 맵이 비어 있지 않다고 가정합니다.

이 함수는 로그 시간으로 실행됩니다.

firstKey(), last(), keyEnd() 및 isEmpty()도 참조하세요 .

QMap<Key, T>::iterator QMap::lowerBound(const Key &key)

지도에서 key 키를 가진 첫 번째 항목을 가리키는 이터레이터를 반환합니다. 맵에 key 키가 있는 항목이 없는 경우 이 함수는 더 큰 키를 가진 가장 가까운 항목에 대한 반복자를 반환합니다.

upperBound() 및 find()도 참조하세요 .

QMap<Key, T>::const_iterator QMap::lowerBound(const Key &key) const

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

QMap<Key, T>::size_type QMap::remove(const Key &key)

맵에서 key 키를 가진 모든 아이템을 제거합니다. 제거된 항목 수를 반환하며, 키가 맵에 존재하면 1, 그렇지 않으면 0이 됩니다.

clear() 및 take()도 참조하세요 .

[since 6.1] template <typename Predicate> QMap<Key, T>::size_type QMap::removeIf(Predicate pred)

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

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

제거된 요소가 있으면 그 수를 반환합니다.

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

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

QMap<Key, T>::size_type QMap::size() const

맵에 있는 (키, 값) 쌍의 수를 반환합니다.

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

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

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

T QMap::take(const Key &key)

맵에서 key 키가 있는 항목을 제거하고 해당 항목과 연관된 값을 반환합니다.

항목이 맵에 존재하지 않으면 이 함수는 기본적으로 구성된 값을 반환합니다.

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

remove()도 참조하세요 .

std::map<Key, T> QMap::toStdMap() const &

이에 해당하는 STL 맵을 반환합니다 QMap.

[since 6.0] std::map<Key, T> QMap::toStdMap() &&

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

참고: 이 함수를 호출하면 QMap 이 부분적으로 형성된 상태로 유지되며, 유효한 연산은 파괴 또는 새 값의 할당뿐입니다.

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

QMap<Key, T>::iterator QMap::upperBound(const Key &key)

맵에서 키가 key 인 마지막 항목 바로 뒤에 있는 항목을 가리키는 이터레이터를 반환합니다. 맵에 key 키가 있는 항목이 없는 경우 이 함수는 더 큰 키를 가진 가장 가까운 항목에 대한 반복자를 반환합니다.

예시:

QMap<int, QString> map;
map.insert(1, "one");
map.insert(5, "five");
map.insert(10, "ten");

map.upperBound(0);      // returns iterator to (1, "one")
map.upperBound(1);      // returns iterator to (5, "five")
map.upperBound(2);      // returns iterator to (5, "five")
map.upperBound(10);     // returns end()
map.upperBound(999);    // returns end()

lowerBound() 및 find()도 참조하세요 .

QMap<Key, T>::const_iterator QMap::upperBound(const Key &key) const

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

T QMap::value(const Key &key, const T &defaultValue = T()) const

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

맵에 key 키가 있는 항목이 없는 경우 함수는 defaultValue 을 반환합니다. defaultValue 을 지정하지 않으면 함수는 기본적으로 구성된 값을 반환합니다.

key(), values(), contains() 및 operator[]()도 참조하세요 .

QList<T> QMap::values() const

맵의 모든 값이 포함된 목록을 키의 오름차순으로 반환합니다.

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

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

[default] QMap<Key, T> &QMap::operator=(QMap<Key, T> &&other)

이동-이 other 인스턴스를 QMap 인스턴스에 할당합니다.

[default] QMap<Key, T> &QMap::operator=(const QMap<Key, T> &other)

이 맵에 other 을 할당하고 이 맵에 대한 참조를 반환합니다.

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

key 키와 연관된 값을 수정 가능한 참조로 반환합니다.

맵에 key 키가 있는 항목이 없는 경우 이 함수는 key 키를 사용하여 맵에 기본 구성 값을 삽입하고 이에 대한 참조를 반환합니다.

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

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

이 함수는 과부하된 함수입니다.

value()와 동일합니다.

관련 비회원

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

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

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

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

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

[since 6.8] size_t qHash(const QMap<Key, T> &key, size_t seed = 0)

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

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

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

bool operator!=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)

lhsrhs 과 같지 않으면 true 을 반환하고, 그렇지 않으면 false 를 반환합니다.

두 맵이 동일한 (키, 값) 쌍을 포함하면 동일한 것으로 간주합니다.

이 함수는 operator==() 을 구현하기 위해 키와 값 유형이 필요합니다.

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

template <typename Key, typename T> QDataStream &operator<<(QDataStream &out, const QMap<Key, T> &map)

out 을 스트리밍하기 위해 map 맵을 작성합니다.

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

QDataStream 연산자의 형식을참조하십시오 .

bool operator==(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)

lhsrhs 과 같으면 true 을 반환하고, 그렇지 않으면 false 를 반환합니다.

두 맵이 동일한 (키, 값) 쌍을 포함하면 동일한 것으로 간주됩니다.

이 함수를 구현하려면 operator==() 을 구현할 키와 값 유형이 필요합니다.

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

template <typename Key, typename T> QDataStream &operator>>(QDataStream &in, QMap<Key, T> &map)

in 스트림에서 map 로 맵을 읽습니다.

이 함수는 operator>>() 을 구현하기 위한 키 및 값 유형이 필요합니다.

QDataStream 연산자의 형식을참조하십시오 .

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