QMap类

template <typename Key, typename T> class QMap

QMap类是一个模板类,提供了关联数组。 更多信息...

头文件 #include <QMap>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

注意:本类中的所有函数都是重入的.

公共类型

公共函数

QMap()
QMap(std::initializer_list<std::pair<Key, T>> list)
QMap(const std::map<Key, T> &other)
QMap(std::map<Key, T> &&other)
QMap(const QMap<Key, T> &other)
QMap(QMap<Key, T> &&other)
~QMap()
(since 6.4) autoasKeyValueRange() &
(since 6.4) autoasKeyValueRange() const &
(since 6.4) autoasKeyValueRange() &&
(since 6.4) autoasKeyValueRange() const &&
QMap<Key, T>::iteratorbegin()
QMap<Key, T>::const_iteratorbegin() const
QMap<Key, T>::const_iteratorcbegin() const
QMap<Key, T>::const_iteratorcend() const
voidclear()
QMap<Key, T>::const_iteratorconstBegin() const
QMap<Key, T>::const_iteratorconstEnd() const
QMap<Key, T>::const_iteratorconstFind(const Key &key) const
QMap<Key, T>::const_key_value_iteratorconstKeyValueBegin() const
QMap<Key, T>::const_key_value_iteratorconstKeyValueEnd() const
boolcontains(const Key &key) const
QMap<Key, T>::size_typecount(const Key &key) const
QMap<Key, T>::size_typecount() const
boolempty() const
QMap<Key, T>::iteratorend()
QMap<Key, T>::const_iteratorend() 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>::iteratorerase(QMap<Key, T>::const_iterator pos)
(since 6.0) QMap<Key, T>::iteratorerase(QMap<Key, T>::const_iterator first, QMap<Key, T>::const_iterator last)
QMap<Key, T>::iteratorfind(const Key &key)
QMap<Key, T>::const_iteratorfind(const Key &key) const
T &first()
const T &first() const
const Key &firstKey() const
QMap<Key, T>::iteratorinsert(const Key &key, const T &value)
QMap<Key, T>::iteratorinsert(QMap<Key, T>::const_iterator pos, const Key &key, const T &value)
voidinsert(const QMap<Key, T> &map)
voidinsert(QMap<Key, T> &&map)
boolisEmpty() const
Keykey(const T &value, const Key &defaultKey = Key()) const
QMap<Key, T>::key_iteratorkeyBegin() const
QMap<Key, T>::key_iteratorkeyEnd() const
QMap<Key, T>::key_value_iteratorkeyValueBegin()
QMap<Key, T>::const_key_value_iteratorkeyValueBegin() const
QMap<Key, T>::key_value_iteratorkeyValueEnd()
QMap<Key, T>::const_key_value_iteratorkeyValueEnd() 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>::iteratorlowerBound(const Key &key)
QMap<Key, T>::const_iteratorlowerBound(const Key &key) const
QMap<Key, T>::size_typeremove(const Key &key)
(since 6.1) QMap<Key, T>::size_typeremoveIf(Predicate pred)
QMap<Key, T>::size_typesize() const
voidswap(QMap<Key, T> &other)
Ttake(const Key &key)
std::map<Key, T>toStdMap() const &
(since 6.0) std::map<Key, T>toStdMap() &&
QMap<Key, T>::iteratorupperBound(const Key &key)
QMap<Key, T>::const_iteratorupperBound(const Key &key) const
Tvalue(const Key &key, const T &defaultValue = T()) const
QList<T>values() const
QMap<Key, T> &operator=(const QMap<Key, T> &other)
QMap<Key, T> &operator=(QMap<Key, T> &&other)
T &operator[](const Key &key)
Toperator[](const Key &key) const
(since 6.1) qsizetypeerase_if(QMap<Key, T> &map, Predicate pred)
booloperator!=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
QDataStream &operator<<(QDataStream &out, const QMap<Key, T> &map)
booloperator==(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 开始,还可以安全地使用指针类型作为键值,即使底层的 operator<() 不提供全序。

以下是一个具有 QString 键值和 int 值的 QMap 的示例

QMap<QString, int> map;

要将 (键,值) 对插入到映射中,可以使用 operator[]()

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

通常建议您在映射中查找键时使用 contains() 和 value() 而不是 operator[]()。原因在于,如果映射中没有相同键的项(除非映射是 const),operator[]() 默认会插入一个新项。例如,以下代码片段将创建 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 允许每个键只有一个值。如果您使用已在 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 使用它来保持其_sorted_,并假定如果 xy 都不成立,则两个键 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

在示例中,我们首先比较员工的名字。如果它们相等,我们通过比较他们的出生日期来打破平局。

另请参阅 QMapIteratorQMutableMapIteratorQHashQSet

成员类型文档

QMap::ConstIterator

Qt样式的QMap::const_iterator同义词。

QMap::Iterator

Qt样式的QMap::iterator同义词。

QMap::const_key_value_iterator

QMap::const_key_value_iterator类型定义提供了QMap的STL样式迭代器。

QMap::const_key_value_iterator基本上与QMap::const_iterator相同,区别在于operator*()返回一个键/值对而不是一个值。

另请参阅 QKeyValueIterator

[别名] QMap::difference_type

typedef为ptrdiff_t。为STL兼容性提供。

[别名] QMap::key_type

typedef为Key。为STL兼容性提供。

QMap::key_value_iterator

QMap::key_value_iterator类型定义提供了QMap的STL样式迭代器。

QMap::key_value_iterator基本上与QMap::iterator相同,区别在于operator*()返回一个键/值对而不是一个值。

另请参阅 QKeyValueIterator

[别名] QMap::mapped_type

typedef为T。为STL兼容性提供。

[别名] QMap::size_type

typedef为int。为STL兼容性提供。

成员函数文档

[自6.4起] auto QMap::asKeyValueRange() &

[自6.4起] auto QMap::asKeyValueRange() &&

[自6.4起] auto QMap::asKeyValueRange() const &

[自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()。

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

通过初始化列表list中每个元素的副本来构建一个映射。

[显式构造] QMap::QMap(const std::map<Key, T> &other)

构建other的副本。

另请参阅toStdMap().

[显式构造] QMap::QMap(std::map<Key, T> &&other)

通过移动从other构造一个映射。

另请参阅toStdMap().

[默认 " QMap::QMap(const QMap<Key, T> &other)

构建other的副本。

此操作在恒定时间内完成,因为QMap是隐式共享的。这使得从函数返回QMap非常快。如果修改共享实例,它将被复制(写时复制),这需要线性时间

另请参阅operator=.

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

移动构造QMap实例。

[默认] 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 在该映射中项的常量迭代器。

如果映射不包含具有键 key 的项,则该函数返回 constEnd

另请参阅find

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

返回一个指向映射中第一个条目的常量 STL-style iterator

另请参阅keyValueBegin

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

返回一个指向映射中最后一个条目的虚拟条目的常量 STL-style iterator

另请参阅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(),如果映射为空,则返回 true;否则返回 false。

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

返回一个指向映射中最后一个虚拟项的 STL-style iterator

另请参阅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()。

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)

这是一个重载函数。

在指定位置pos处插入具有键key和值value的新项。

如果使用constBegin()作为提示,则表示该key小于映射中的任何键,而constEnd()则表示该key大于映射中的任何键。否则,提示应满足条件 (pos - 1)。 key() < key <= pos.key().如果提示pos不正确,则将其忽略并执行常规插入。

如果已存在键为key的项目,则其值将被value替换。

如果提示正确且映射未共享,则插入操作在平均常数时间内执行。

当从排序数据创建映射时,首先使用constBegin()插入最大的键比以排序顺序使用constEnd()插入更快,因为constEnd() - 1(用于检查提示是否有效)需要对数时间

注意:请小心使用提示。使用旧共享实例的迭代器可能会导致崩溃,同时也存在将映射和pos映射静默损坏的风险。

返回指向新/更新元素的迭代器。

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

map中的所有项目插入到当前映射中。

如果两个映射都存在键是通用的,其值将用map中存储的值替换。

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

map中的所有项目移动到当前映射中。

如果两个映射都存在键是通用的,其值将用map中存储的值替换。

如果map是共享的,则将复制这些项目。

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-style iterator

另请参阅keyValueEnd()。

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

返回一个指向地图中最后一个条目之后的虚拟条目的 STL风格的迭代器

另请参阅keyValueBegin

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

返回一个指向映射中最后一个条目的虚拟条目的常量 STL-style iterator

另请参阅keyValueBegin

QList<Key> QMap::keys() const

返回一个包含地图中所有键的列表,键按升序排列。

顺序保证与 values() 中使用的顺序相同。

此函数会创建一个新列表,在 线性时间 内完成。可以通过从 keyBegin() 到 keyEnd() 进行迭代来避免所需的时间和内存使用。

另请参阅values() 和 key()。

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

这是一个重载函数。

返回一个包含与 value 值相关联的所有键的列表,键按升序排列。

此函数可能较慢 (线性时间),因为 QMap 的内部数据结构是针对通过键快速查找而优化的,而非通过值。

T &QMap::last()

返回到map中最后一个值的引用,即映射到最大键的值。此函数假设map不为空。

在不共享(或调用const版本时),此操作在对数时间内执行。

另请参阅first(),lastKey() 和 isEmpty()。

const T &QMap::last() const

这是一个重载函数。

const Key &QMap::lastKey() const

返回map中最大键的引用。此函数假设map不为空。

此操作在对数时间内执行。

另请参阅firstKey(),last(),keyEnd() 和 isEmpty()。

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

返回一个指向map中第一个具有键key的元素的迭代器。如果map不包含具有键key的项,则函数返回指向具有更大键的最近项的迭代器。

另请参阅upperBound() 和 find()。

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

这是一个重载函数。

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

从map中删除所有具有键key的项。返回删除的项目数,如果键存在于map中,则为1,否则为0。

另请参阅clear() 和 take()。

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

从map中删除所有使谓词pred返回true的元素。

函数支持接受类型为QMap<Key, T>::iterator或类型为std::pair<const Key &, T &>的参数的谓词。

如果有任何元素被删除,则返回删除的元素数。

此函数是在Qt 6.1中引入的。

另请参阅clear() 和 take()。

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

返回map中(key, value)对的数量。

另请参阅isEmpty() 和 count()。

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

与此map交换map other。此操作非常快且从不失败。

T QMap::take(const Key &key)

从映射中移除键为 key 的项目,并返回与其关联的值。

如果映射中不存在该项目,函数将简单地返回一个 默认构造值

如果不使用返回值,则使用 remove() 更有效率。

另请参阅remove().

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

返回一个与该 QMap 相等的 STL 映射。

[自 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()。

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

other 赋予此映射,并返回对此映射的引用。

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

other移动赋值到本QMap实例。

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

返回与键key关联的值的可修改引用。

如果映射不包含键为key的项目,则该函数将在映射中插入一个具有键key默认构造值,并返回对其的引用。

另请参阅insert() 和 value()。

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

这是一个重载函数。

等同于 value()。

相关非成员函数

[自 6.1 版起] 模板 <typename Key, typename T, typename Predicate> qsizetype erase_if(QMap<Key, T> &map, Predicate pred)

从映射中删除所有使谓词pred返回true的元素。

函数支持接受类型为QMap<Key, T>::iterator或类型为std::pair<const Key &, T &>的参数的谓词。

如果有任何元素被删除,则返回删除的元素数。

此函数是在Qt 6.1中引入的。

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

如果lhs不等于rhs,则返回true;否则返回false

如果两个映射包含相同的(键,值)对,则认为它们是相等的。

此函数要求键和值的类型实现 operator==()

另请参阅operator==

模板 <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

如果两个映射包含相同的(键,值)对,则认为它们是相等的。

此函数要求键和值的类型实现 operator==()

另请参阅operator!=

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

从流in中读取映射到map

此函数要求键和值的类型实现 operator>>()

另请参阅QDataStream操作符的格式

© 2024 Qt公司有限有限公司。本文件中包含的文档贡献均为各自所有者的版权。此处提供的文档依据自由软件基金会发布的GNU自由文档许可证版本1.3进行许可。Qt及其标志是芬兰及其它国家Qt公司有限公司的商标。商标。所有其他商标均为各自所有者的财产。