
Разработка приложений на C++_Практическая работа №13
.pdf
Модуль 4 Тема 4.1 Практика

Имеется словарь городов. В словаре хранится название города и кол-во его жителей
QMap <QString,int> cities;
Запишите в поток output содержимое контейнера, если для контейнера определена следующая операция:
QDataStream & operator<< ( QDataStream & out, const QMap<Key, T> & map )
QT += core
main.cpp
#include <auroraapp.h>
#include <QtQuick>
#include <iostream> // Для вывода в терминал
#include <QCoreApplication>
#include <QDataStream>
#include <QMap>
#include <QMapIterator> // Для демонстрации значений в QMap
#include <QTimer>
using namespace std; //Строка
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//Создание карты значений. QMap это и есть один из контейнеров в Qt. QMap <QString,int> cities;
//Добавление городов с самым маленьким населением в РФ
cities["Горбатов"] = 1982;

cities["Приморск"] = 1960; cities["Островной"] = 1847; cities["Плёс"] = 1796; cities["Артёмовск"] = 1688; cities["Курильск"] = 1591; cities["Верхоянск"] = 1122; cities["Высоцк"] = 1094; cities["Чекалин"] = 914; cities["Иннополис"] = 407;
//Выводим содержимое QMap в стандартный поток вывода cout << "Вывод содержимого cities." << endl; QMapIterator<QString, int> i(cities);
while (i.hasNext()) { i.next();
cout << qPrintable(i.key()) << ": " << i.value() << endl;
}
//Выполняем сериализацию cities
QByteArray data;
QDataStream output(&data, QIODevice::WriteOnly); output << cities;
//Выполняем десериализацию в new_cities QMap <QString,int> new_cities;
QDataStream input(&data, QIODevice::ReadOnly); input >> new_cities;
//Выводим содержимое QMap в стандартный поток вывода cout << "Вывод содержимого new_cities." << endl; QMapIterator<QString, int> ni(new_cities);
while (ni.hasNext()) { ni.next();
cout << qPrintable(ni.key()) << ": " << ni.value() << endl;
}
//Завершаем программу через 100 миллисекунд

QTimer::singleShot(100, &a, &QCoreApplication::quit);
return a.exec();
}