c++qmap迭代器
时间: 2024-03-19 19:38:30 浏览: 81
C++的QMap是Qt框架中提供的一个关联容器,它是基于红黑树实现的有序映射。QMap提供了一组丰富的API来操作和管理键值对。
QMap的迭代器用于遍历和访问容器中的元素。QMap提供了两种类型的迭代器:const_iterator和iterator。其中,const_iterator用于遍历和访问QMap中的元素,但不能修改元素的值;而iterator不仅可以遍历和访问元素,还可以修改元素的值。
使用QMap的迭代器可以按照键的顺序遍历容器中的元素。以下是使用QMap迭代器的示例代码:
```cpp
QMap<int, QString> map;
map.insert(1, "apple");
map.insert(2, "banana");
map.insert(3, "orange");
// 使用const_iterator遍历QMap
QMap<int, QString>::const_iterator cIt;
for (cIt = map.constBegin(); cIt != map.constEnd(); ++cIt) {
int key = cIt.key();
QString value = cIt.value();
qDebug() << "Key:" << key << "Value:" << value;
}
// 使用iterator修改QMap中的元素
QMap<int, QString>::iterator it;
for (it = map.begin(); it != map.end(); ++it) {
if (it.key() == 2) {
it.value() = "pear";
}
}
// 输出修改后的QMap
QMap<int, QString>::const_iterator cIt2;
for (cIt2 = map.constBegin(); cIt2 != map.constEnd(); ++cIt2) {
int key = cIt2.key();
QString value = cIt2.value();
qDebug() << "Key:" << key << "Value:" << value;
}
```
阅读全文