diff options
Diffstat (limited to 'src/corelib/tools/qmap.h')
-rw-r--r-- | src/corelib/tools/qmap.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h index 43acf09ea9..b400e69f0c 100644 --- a/src/corelib/tools/qmap.h +++ b/src/corelib/tools/qmap.h @@ -548,6 +548,8 @@ public: const_iterator base() const { return i; } }; + typedef QKeyValueIterator<const Key&, const T&, const_iterator> const_key_value_iterator; + typedef QKeyValueIterator<const Key&, T&, iterator> key_value_iterator; // STL style inline iterator begin() { detach(); return iterator(d->begin()); } @@ -560,6 +562,12 @@ public: inline const_iterator cend() const { return const_iterator(d->end()); } inline key_iterator keyBegin() const { return key_iterator(begin()); } inline key_iterator keyEnd() const { return key_iterator(end()); } + inline key_value_iterator keyValueBegin() { return key_value_iterator(begin()); } + inline key_value_iterator keyValueEnd() { return key_value_iterator(end()); } + inline const_key_value_iterator keyValueBegin() const { return const_key_value_iterator(begin()); } + inline const_key_value_iterator constKeyValueBegin() const { return const_key_value_iterator(begin()); } + inline const_key_value_iterator keyValueEnd() const { return const_key_value_iterator(end()); } + inline const_key_value_iterator constKeyValueEnd() const { return const_key_value_iterator(end()); } iterator erase(iterator it); // more Qt @@ -948,7 +956,7 @@ Q_OUTOFLINE_TEMPLATE T QMap<Key, T>::take(const Key &akey) Node *node = d->findNode(akey); if (node) { - T t = node->value; + T t = std::move(node->value); d->deleteNode(node); return t; } |