/
khazov
/
module2
Обзор
Документация
Войти
/
khazov
/
module2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
task3_2/task3_2.cpp
85 строк
2 KB
KhazovAV
Добавлена сортировка
19 июн 2026, 22:30
19 июн 2026, 22:30
a6d2e76
Код
Авторство
О чём код?
// task3_2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. // Задача 2 - Сортировка адресов #include <Windows.h> #include <iostream> #include <fstream> #include <string> #include <algorithm> #include "Address.h" using namespace std; void buble_sort(Address** addreses, int size); //---------------------------------------------------------------- int main() { int addr_count; Address** addreses; SetConsoleCP(1251); SetConsoleOutputCP(1251); // Чтение адресов из файла ifstream file_in("in.txt"); file_in >> addr_count; addreses = new Address*[addr_count]; for (int i = 0; i < addr_count; i++) { int home, flat; string city, street; file_in >> city; file_in >> street; file_in >> home; file_in >> flat; addreses[i] = new Address(city, street, home, flat); } file_in.close(); // Сортировка пузырьком buble_sort(addreses, addr_count); /* // Руки чешуться воспользоваться библиотечной сортировкой std::sort(addreses, addreses + addr_count, [](const Address* a, const Address* b) { return (a->city < b->city); }); */ // Запись адресов в файл ofstream file_out("out.txt"); file_out << addr_count << endl; for (int i = 0; i < addr_count; i++) file_out << addreses[i]->toString() << endl; file_out.close(); // Удаление массивов for (size_t i = 0; i < addr_count; i++) delete addreses[i]; delete[]addreses; } //---------------------------------------------------------------- void buble_sort(Address** addreses, int size) { for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (addreses[j]->get_city() > addreses[j + 1]->get_city()) { Address* temp = addreses[j]; addreses[j] = addreses[j + 1]; addreses[j + 1] = temp; } } } } //----------------------------------------------------------------