QT C++遍历map
时间: 2024-06-04 13:04:45 浏览: 109
在C++中,遍历map有多种方法,以下是其中的一种:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<string, int> myMap = {{"apple", 1}, {"banana", 2}, {"orange", 3}};
// 使用迭代器遍历map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << it->first << " => " << it->second << '\n';
}
return 0;
}
```
这段代码首先定义了一个名为myMap的map,其中存储了三个键值对。然后,使用迭代器遍历myMap,输出每个键值对的键和值。这里使用了auto关键字自动推导迭代器类型。
相关问题
写出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并在控制台输出结果。
QT QT 遍历数组把相同车号的柴油升数,金额,车数,方量,公里数等累加,代码呈现
QT是一种流行的跨平台GUI应用程序开发框架,可以用C++语言编写。针对您的问题,我可以提供以下代码示例:
```cpp
#include <QCoreApplication>
#include <QMap>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 定义一个QMap来存储车号和对应的信息
QMap<QString, QMap<QString, double>> carInfoMap;
// 模拟数据
QStringList carNumbers = {"A001", "A002", "A003"};
QList<QMap<QString, double>> infoList = {
{{"升数", 50}, {"金额", 1000}, {"车数", 1}, {"方量", 20}, {"公里数", 100}},
{{"升数", 60}, {"金额", 1200}, {"车数", 2}, {"方量", 30}, {"公里数", 200}},
{{"升数", 70}, {"金额", 1400}, {"车数", 3}, {"方量", 40}, {"公里数", 300}}
};
// 遍历数组,把相同车号的信息累加到map中
for (int i = 0; i < carNumbers.size(); i++) {
QString carNumber = carNumbers[i];
QMap<QString, double> info = infoList[i];
if (carInfoMap.contains(carNumber)) {
QMapIterator<QString, double> iter(info);
while (iter.hasNext()) {
iter.next();
QString key = iter.key();
double value = iter.value();
carInfoMap[carNumber][key] += value;
}
} else {
carInfoMap.insert(carNumber, info);
}
}
// 输出结果
QMapIterator<QString, QMap<QString, double>> iter(carInfoMap);
while (iter.hasNext()) {
iter.next();
QString carNumber = iter.key();
QMap<QString, double> info = iter.value();
qDebug() << "车号:" << carNumber;
qDebug() << "升数:" << info["升数"];
qDebug() << "金额:" << info["金额"];
qDebug() << "车数:" << info["车数"];
qDebug() << "方量:" << info["方量"];
qDebug() << "公里数:" << info["公里数"];
}
return a.exec();
}
```
相关问题:
1. QMap是什么?
2. 如何遍历QMap?
3. 如何判断QMap是否包含某个键?
阅读全文