MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Как перебрать все элементы QMap через foreach, получив ключ и значение
20.03.2016
22:41
Автор: Xintrea
Текстовые метки: Qt, foreach, QMap, перебор элементов
Раздел: Компьютер - Программирование - Язык C++ - Библиотека Qt - Принципы написания кода

В стендартной документации Qt написано, что перебрать элементы объекта класса QMap можно через инструкцию foreach.


К сожалению, приводимый пример показывает, как перебрать значения QMap. А каким образом получить еще и ключи - не объясняется. Есть только ссылка на использование итераторов.


Перебор значений в официальной документации Qt выглядит так:


QMap<QString, int> map;

...

foreach (int value, map)

cout << value << endl;


Видно, что тут перебираются значения (value), а ключи (key) тут отсутсвуют.


Тем не менее, есть возможность перебрать и key, и value без итераторов. Делается это при помощи методов map.keys() и map.value() вот так:


QMap<QString, int> map;

 ...

foreach (QString key, map.keys())

{

int value=map.value(key);

  qDebug() << key << ":" << value;

}


Считается, что такой метод работает медленнее итераторов. Но он один из самых удобных.


Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования