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 のキー・タイプは、operator==()とグローバルなqHash(Key)関数を提供しなければならない。QMap のキー・タイプは、総順序を指定する operator<() を提供しなければなりません。Qt 5.8.1以降、ポインタ型をキーとして使用することも安全になりました。

以下は、QString キーとint 値を持つ QMap の例です:

QMap<QString, int> map;

キーと値の)ペアをマップに挿入するには、 operator[]() を使用します:

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

これは、以下の3つの(キーと値の)ペアをQMapに挿入します:("one", 1)、("three", 3)、("seven", 7)。マップに項目を挿入するもう1つの方法は、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 ()のオーバーロードもあり、このオーバーロードでは、指定されたキーを持つ項目がない場合、第2引数をデフォルト値として使用します:

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

一般的に、マップ内のキーを検索するには、operator[]() よりもcontains() やvalue() を使用することを推奨します。なぜなら、operator[]() は、同じキーを持つ項目が存在しない場合、(マップが 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では、1つのキーに1つの値しか入れられません。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のキー型はoperator<()を提供しなければなりません。QMapはこれを使用して項目をソートし、xy の2つのキーは、x < yy < x のどちらも真でない場合、等価であるとみなします。

#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

この例では、まず従業員の名前を比較します。もし同じであれば、生年月日を比較し、同数であることを確認します。

QMapIteratorQMutableMapIteratorQHashQSetも参照のこと

メンバー型ドキュメント

QMap::ConstIterator

QMap::const_iterator のQt-styleシノニム。

QMap::Iterator

QMap::iterator の Qt 形式のシノニム.

QMap::const_key_value_iterator

QMap::const_key_value_iterator typedef は,QMap に対する STL 形式のイテレータを提供する.

QMap::const_key_value_iterator はQMap::const_iterator と本質的に同じですが、 operator*() が値の代わりにキーと値のペアを返す点が異なります。

QKeyValueIteratorも参照してください

[alias] QMap::difference_type

ptrdiff_tの型定義です。STLとの互換性のために用意されています。

[alias] QMap::key_type

Keyの型定義.STL との互換性のために用意されています。

QMap::key_value_iterator

QMap::key_value_iterator typedef は、QMap に対する STL スタイルのイテレータを提供します。

QMap::key_value_iterator はQMap::iterator と本質的に同じですが、 operator*() が値の代わりに key/value ペアを返す点が異なります。

QKeyValueIteratorも参照してください

[alias] QMap::mapped_type

STLとの互換性のために用意されています。

[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)

Move-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

マップの最後の項目の後の仮想の項目を指す constSTL 形式のイテレータを返します。

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 形式の const イテレータを返します。

keyValueBegin()も参照して ください。

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

マップの最後のエントリの後の架空のエントリを指す constSTL 形式のイテレータを返します。

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) が指す (key, value) ペアをマップから削除します。最後に削除された要素に続くマップ内の項目へのイテレータを返します。

注意: 範囲[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 <= pos.key()という条件を満たさなければならない。ヒントpos が間違っている場合、それは無視され、通常の挿入が行われる。

キーkey を持つアイテムがすでに存在する場合、そのアイテムの値はvalue に置き換えられる。

ヒントが正しく、マップが非共有であれば、挿入は償却された定数時間で実行される。

constEndソートされたデータからマップを作成する場合、constBegin()を使用して最大 のキーを最初に挿入する方が、constEnd()を使用してソートされた順に挿入 するよりも高速である。

注意:ヒントの取り扱いには注意してください。古い共有インスタンスからのイテレータを提供するとクラッシュする可能性がありますが、マップと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

(key,value)ペアの数を返します。

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 &

このQMap と等価な STL マップを返します。

[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)

Move-このQMap インスタンスにother を割り当てる。

[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 のハッシュ値を返します。

KeyT の型は qHash() でサポートされている必要があります。

この関数は Qt 6.8 で導入されました。

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

lhsrhs と等しくない場合はtrue を返し、そうでない場合は false を返します。

2つのマップが同じ(キー、値)ペアを含む場合、等しいとみなされます。

この関数は、operator==() を実装するために、キーと値の型を必要とします。

operator==()も参照のこと

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

マップmap をストリームout に書き込みます。

この関数は、operator<<() を実装するためのキー型と値型を必要とします。

QDataStream 演算子の形式も参照して ください。

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

lhsrhs と等しい場合はtrue を返し、そうでない場合は false を返します。

2つのマップが同じ(キー、値)ペアを含む場合、等しいとみなされます。

この関数は、キーと値の型がoperator==() を実装している必要があります。

operator!=()も参照

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

ストリームin からマップをmap に読み込みます。

この関数には、operator>>() を実装するためのキー型と値型が必要です。

QDataStream 演算子のフォーマットも参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。