qmap<qstring,int>比较自身不同的键和值是否一样
时间: 2024-02-01 21:13:54 浏览: 133
你可以使用 `std::equal()` 算法来比较两个 `qmap<qstring, int>` 是否有相同的键和值。示例代码如下:
```cpp
#include <QtDebug>
#include <QMap>
#include <algorithm>
int main()
{
QMap<QString, int> map1{{"a", 1}, {"b", 2}, {"c", 3}};
QMap<QString, int> map2{{"a", 1}, {"b", 2}, {"d", 4}};
bool keys_equal = std::equal(map1.begin(), map1.end(), map2.begin(),
[](const auto& pair1, const auto& pair2) {
return pair1.first == pair2.first;
});
bool values_equal = std::equal(map1.begin(), map1.end(), map2.begin(),
[](const auto& pair1, const auto& pair2) {
return pair1.second == pair2.second;
});
if (keys_equal && values_equal) {
qDebug() << "The maps are equal.";
} else {
qDebug() << "The maps are not equal.";
}
return 0;
}
```
在上面的示例代码中,我们首先使用 `std::equal()` 算法比较了两个 `qmap` 对象的键是否相等,然后又使用 `std::equal()` 算法比较了两个 `qmap` 对象的值是否相等。最后,如果两个 `qmap` 对象的键和值都相等,则输出 "The maps are equal.",否则输出 "The maps are not equal."。
阅读全文