C++ 实现QMap逆向遍历
时间: 2023-06-29 13:10:29 浏览: 297
QMap 是 Qt 中提供的一个关联容器,它提供了快速的查找和插入操作。QMap 中的元素是按照键排序的,因此可以直接使用迭代器进行正向遍历。如果要进行逆向遍历,可以使用 QMap 的 rbegin() 和 rend() 函数来获取反向迭代器,然后使用迭代器的递减操作符进行遍历。
下面是使用 C++ 实现 QMap 的逆向遍历的示例代码:
```c++
#include <iostream>
#include <QMap>
int main()
{
QMap<int, std::string> map;
map.insert(1, "one");
map.insert(2, "two");
map.insert(3, "three");
// 逆向遍历
for (auto it = map.rbegin(); it != map.rend(); ++it) {
std::cout << it.key() << ": " << it.value() << std::endl;
}
return 0;
}
```
在上面的示例代码中,首先定义了一个 QMap 对象,并向其中插入了三个键值对。然后使用反向迭代器进行逆向遍历,输出每个键和对应的值。注意,使用迭代器的 key() 和 value() 函数可以分别获取迭代器指向的键和值。
相关问题
QMapIterator遍历map
你可以使用QMapIterator来遍历QMap。以下是示例代码:
```c++
QMap<QString, int> map;
map.insert("One", 1);
map.insert("Two", 2);
map.insert("Three", 3);
QMapIterator<QString, int> i(map);
while (i.hasNext()) {
i.next();
qDebug() << i.key() << ": " << i.value();
}
```
上述代码将输出以下结果:
```
One: 1
Three: 3
Two: 2
```
在上述代码中,我们首先创建了一个QMap对象并向其中插入了一些键值对。然后,我们使用QMapIterator来遍历map,并使用i.key()和i.value()获取当前项的键和值。最后,我们使用qDebug()输出了这些键值对。
写出qt c++ Qmap遍历删除
首先,可以使用QMap的迭代器完成遍历和删除操作,代码示例如下:
QMap<QString, int> map;
// 添加元素
map.insert("A", 1);
map.insert("B", 2);
map.insert("C", 3);
// 迭代器遍历和删除
QMap<QString, int>::iterator iter;
for (iter = map.begin(); iter != map.end(); ) {
if (iter.value() == 2) {
iter = map.erase(iter); // 删除值为2的元素
}
else {
iter++;
}
}
// 遍历输出
for (iter = map.begin(); iter != map.end(); iter++) {
qDebug() << iter.key() << iter.value();
}
在上面的代码中,我们创建了一个QMap对象并插入了三个元素。然后,我们使用迭代器遍历QMap并在值等于2时删除元素。最后,我们再次使用迭代器遍历QMap并在控制台输出结果。