迭代器类
类 QMultiMap::iteratorQMultiMap::iterator 类提供了一个 STL 风格的非 const 迭代器,用于 QMultiMap。了解更多...
公共类型
公共函数
iterator() | |
const Key & | key() const |
T & | value() const |
T & | operator*() const |
QMultiMap | operator++() |
QMultiMap | operator++(int) |
QMultiMap | operator--() |
QMultiMap | operator--(int) |
T * | operator->() const |
相关知识成员
bool | operator!=(const QMultiMap |
bool | operator==(const QMultiMap |
详细信息
QMultiMap
默认的 QMultiMap::iterator 构造函数创建了一个未初始化的迭代器。您必须在开始迭代之前使用例如 QMultiMap::begin()、QMultiMap::end 或 QMultiMap::find() 这样的 QMultiMap 函数来初始化它。以下是一个典型的循环,打印出在映射中存储的所有(键,值)对
与存储项顺序任意的 QMultiHash 不同,QMultiMap 按键的顺序存储其项。具有相同键的项将连续出现,从最近插入的值到最久插入的值。
以下是一个例子,将 QMultiMap 中存储的所有值增加 2
for (auto it = multimap.begin(), end = multimap.end(); i != end; ++i) i.value() += 2;
要从QMultiMap中删除元素,可以使用erase_if(QMultiMap<Key, T> &map, Predicate pred)
可以在同一张映射中多次使用迭代器。如果你向映射中添加项目,现有的迭代器将保持有效。如果你从映射中删除项目,指向已删除项目的迭代器将变为悬空迭代器。
警告:隐式共享容器上的迭代器并不完全像 STL 迭代器那样工作。应避免在迭代器活动期间复制容器。有关更多信息,请参阅隐式共享迭代器问题。
另请参阅:QMultiMap::const_iterator、QMultiMap::key_iterator和QMultiMap::key_value_iterator。
成员函数文档
iterator::iterator()
构建一个未初始化的迭代器。
不要在未初始化的迭代器上调用key()、value和operator++()等函数。在使用它之前,使用operator=()为其分配一个值。
另请参阅:QMultiMap::begin()和QMultiMap::end。
const Key &iterator::key() const
返回当前项的键作为const引用。
没有直接通过迭代器更改项的键的方法,尽管可以通过调用QMultiMap::erase()后再调用QMultiMap::insert()来实现。
另请参阅:value。
T &iterator::value() const
返回当前项的值的可修改引用。
您可以通过在赋值表达式的左侧使用value()更改项的值,例如:
if (i.key() == "Hello") i.value() = "Bonjour";
T &iterator::operator*() const
返回当前项的值的可修改引用。
与value相同。
另请参阅:key。
QMultiMap<Key, T>::iterator &iterator::operator++()
前缀++
运算符(++i
)将迭代器移动到多映射中的下一个项,并返回对新当前位置的迭代器。
在QMultiMap::end()上调用此函数将导致未定义的结果。
另请参阅:operator--。
QMultiMap<Key, T>::iterator iterator::operator++(int)
这是一个重载的函数。
后缀++
运算符(i++
)将迭代器移动到多映射中的下一个项,并返回对先前当前位置的迭代器。
QMultiMap<Key, T>::iterator &iterator::operator--()
前缀 --
运算符(--i
)使前一个项成为当前项,并返回一个指向新的当前项的迭代器。
在 QMultiMap::begin() 上调用此函数将产生未定义的结果。
参见运算符++。
QMultiMap<Key, T>::iterator iterator::operator--(int)
这是一个重载的函数。
后缀 --
运算符(i--
)使前一个项成为当前项,并返回一个指向先前当前项的迭代器。
T *iterator::operator->() const
返回当前项值的指针。
另请参阅:value。
相关非成员
bool operator==(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)
如果 lhs 指向与 rhs 迭代器相同的项,则返回 true
;否则返回 false
。
参见运算符!=。
bool operator!=(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)
如果 lhs 指向与 rhs 迭代器不同的项,则返回 true
;否则返回 false
。
参见运算符==。
© 2024 Qt 公司。本文档中的文献贡献属于各自的版权所有者。本文档受 GNU 自由文档许可证第 1.3 版 的许可,该许可证由自由软件基金会发布。Qt 及其相应徽标是芬兰的 Qt 公司或其他国家和地区注册的商标。所有其他商标均为各自所有者的财产。