QMap Class
template <typename Key, typename T> class QMapQMapクラスは連想配列を提供するテンプレート・クラスです。詳細...
Header: | #include <QMap> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承メンバを含む全メンバ一覧
- QMapは、暗黙的共有クラスの一部です。
注意:このクラスの関数はすべてリエントラントです。
パブリック型
class | const_iterator |
class | iterator |
class | key_iterator |
ConstIterator | |
Iterator | |
const_key_value_iterator | |
difference_type | |
key_type | |
key_value_iterator | |
mapped_type | |
size_type |
パブリック関数
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 の例です:
キーと値の)ペアをマップに挿入するには、 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スタイルのイテレータ(QMapIterator とQMutableMapIterator )と、STLスタイルのイテレータ(QMap::const_iterator とQMap::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を使うこともできます:
マップから項目を削除する方法はいくつかあります。ひとつはremove() を呼び出す方法。これは、指定されたキーを持つ項目をすべて削除します。もうひとつの方法は、QMutableMapIterator::remove ()を使うことである。さらに、clear() を使用すると、マップ全体をクリアできます。
QMapのキーと値のデータ型は、割り当て可能なデータ型でなければなりません。これは、遭遇する可能性の高いほとんどのデータ型をカバーするものですが、コンパイラーは、例えば、QWidget を値として格納することを許可しません。代わりに、QWidget *を格納します。さらに、QMapのキー型はoperator<()を提供しなければなりません。QMapはこれを使用して項目をソートし、x
とy
の2つのキーは、x < y
とy < 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
この例では、まず従業員の名前を比較します。もし同じであれば、生年月日を比較し、同数であることを確認します。
QMapIterator 、QMutableMapIterator 、QHash 、QSetも参照のこと 。
メンバー型ドキュメント
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 形式のイテレータを返します。
QMap<Key, T>::const_iterator QMap::cend() const
マップの最後の項目の後の仮想の項目を指す constSTL 形式のイテレータを返します。
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 形式のイテレータを返します。
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 の内部データ構造は、値ではなくキーによる高速検索に最適化されているため、この関数は遅い(線形時間)場合がある。
QMap<Key, T>::key_iterator QMap::keyBegin() const
マップの最初のキーを指すSTL 形式のイテレータを返します。
QMap<Key, T>::key_iterator QMap::keyEnd() const
マップの最後のキーの後の仮想項目を指す、STL 形式のイテレータを返します。
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() を繰り返し実行することで、時間とメモリの浪費を避けることができる。
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 となります。
[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で導入されました。
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() へ反復処理することで、時間とメモリの浪費を避けることができる。
[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 を持つマップに挿入し、それへの参照を返します。
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 のハッシュ値を返します。
Key
、T
の型は qHash() でサポートされている必要があります。
この関数は Qt 6.8 で導入されました。
bool operator!=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
lhs がrhs と等しくない場合は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)
lhs がrhs と等しい場合は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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。