21xrx.com
2024-09-20 00:36:40 Friday
登录
文章检索 我的文章 写文章
如何在C++中遍历QMap?
2023-07-05 03:15:34 深夜i     --     --
C++ QMap 遍历

QMap是Qt框架中的一个关联容器,它存储了一组键值对,可以通过键索引值。在C++中遍历QMap有很多种方法,下面介绍几种常见的方法。

1.使用QMap的迭代器

QMap的迭代器提供了一种方便的方法来遍历它的键值对。通过遍历迭代器,可以依次获取所有的键和对应的值。

示例代码:


QMap<QString, int> intMap;

intMap.insert("apple", 10);

intMap.insert("banana", 15);

intMap.insert("cherry", 20);

QMap<QString, int>::const_iterator iterator;

for (iterator = intMap.constBegin(); iterator != intMap.constEnd(); ++iterator)

{

  qDebug() << iterator.key() << " : " << iterator.value() << endl;

}

2.使用C++11的新特性——范围循环

在C++11中,有一个新的特性——范围循环,可以方便地遍历一个容器的所有元素。通过在循环中使用auto变量,可以自动推断变量的类型,使代码更加简洁。

示例代码:


QMap<QString, int> intMap;

intMap.insert("apple", 10);

intMap.insert("banana", 15);

intMap.insert("cherry", 20);

for (auto& key : intMap.keys())

{

  qDebug() << key << " : " << intMap.value(key) << endl;

}

3.使用QMap的键和值列表

QMap提供了keys()和values()方法,可以分别获取容器中所有的键和值,并返回一个QList对象。通过遍历这两个列表,可以遍历QMap的所有元素。

示例代码:


QMap<QString, int> intMap;

intMap.insert("apple", 10);

intMap.insert("banana", 15);

intMap.insert("cherry", 20);

QList<QString> keys = intMap.keys();

QList<int> values = intMap.values();

for (int i = 0; i < keys.size(); i++)

{

  qDebug() << keys[i] << " : " << values[i] << endl;

}

以上是几种常见的遍历QMap的方法,在实际开发中,可以根据需求选择合适的方法。需要注意的是,在遍历QMap时,建议使用const_iterator,避免修改容器的内容。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复