Лабораторная работаПрограммированиеГод: 2025ИРНИТУ: Иркутский национальный исследовательский технический университет
👁 11💼 0

Готовая лабораторная: STL контейнеры и алгоритмы C++

Загружена: 20.02.2026 06:29

Практическое применение контейнеров STL и стандартных алгоритмов C++ для работы с коллекциями: инициализация, вставка, поиск, удаление, копирование, сохранение в файл и измерение времени. Включены примеры с vector, set, map, multimap, list, array и unordered_set, а также работа с пользовательской структурой City для освоения итераторов и алгоритмов.

Содержание

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное
учреждение высшего образования
ИРКУТСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ



Институт/Факультет - 	
наименование
Кафедра/Структурное подразделение	
наименование (при наличии)




ВВЕДЕНИЕ В БИБЛИОТЕКИ ПРОГРАММИРОВАНИЯ

ОТЧЕТ

по лабораторной работе № 6

Вариант 3

по дисциплине           Программирование

Подробное описание

📘 О чем эта работа

Лабораторная посвящена практическому использованию стандартной библиотеки C++ (STL) для хранения и обработки коллекций. Объектами исследования являются разные контейнеры (array, vector, list, set, map, multimap, unordered_set) и пользовательские структуры (в частности City и Laureate); предмет — операции над коллекциями и применение алгоритмов STL для решения типовых задач.

📚 Что внутри

Работа структурирована в три задания с подробными описаниями, таблицами тестов и полноценно оформленными кодами на C++:

  • Задание 1: создание и инициализация контейнеров (array, vector, list, set, map, multimap, unordered_set), демонстрация операций вставки, поиска, удаления, изменения и копирования между контейнерами. Приведен пример пользовательской структуры Laureate (fio, work, field, year) и измерение времени массовых вставок (100000 элементов).
  • Задание 2: работа с вектором случайных чисел (m1=0, m2=15, size=10): генерация через generate, копирование, перемешивание через shuffle (default_random_engine), вычисление среднего через accumulate, поэлементное перемножение через transform+multiplies, и возведение в квадрат элементов с помощью лямбда-функции. В коде указаны примеры вывода и форматирования (setprecision).
  • Задание 3: создание ассоциативного контейнера set с пользовательской структурой City (name, latitude, longitude). Описана перегрузка оператора < для корректной сортировки по имени, широте и долготе, реализованы функции addCity, findCity, removeCity, displayCities, saveToFile и loadFromFile, а также интерактивное меню для управления коллекцией.

Во всех заданиях присутствуют таблицы тестов с конкретными входными данными и ожидаемыми результатами; примеры файлового ввода/вывода (data.txt, cities.txt) и подробные комментарии к коду.

📊 Для кого подходит

Подходит студентам бакалавриата по направлениям программная инженерия, информатика и вычислительная техника, а также преподавателям в курсах по «Введению в библиотеки программирования» и «Алгоритмам и структурам данных» для демонстрации практических примеров работы со STL и пользовательскими типами.

✨ Особенности

Конкретные преимущества этой работы:

  • Полные рабочие примеры на C++ с использованием современных приемов: лямбда-функции, объекты-функции (multiplies), default_random_engine, алгоритмы generate, transform, shuffle, accumulate, remove/erase, sort.
  • Показаны разные способы инициализации контейнеров (инициализаторы, конструкторы, копирование через итераторы).
  • Реализация сохранения/загрузки данных в текстовые файлы и обработка ошибок при открытии файлов.
  • Демонстрация использования пользовательских структур в ассоциативных контейнерах с корректной перегрузкой оператора сравнения и примерами устранения дублей.
  • Включены таблицы спецификаций структуры City (диапазоны широты/долготы) и подробные таблицы тестов для валидации работоспособности кода.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура и содержание соответствуют стандартным требованиям для лабораторных по программированию: цель, условия, словесное описание алгоритма, таблицы тестов и сопровождающий код.

Можно адаптировать?
Да. Код и описания легко адаптируются под иные размеры массивов, форматы ввода/вывода, дополнительные проверки и альтернативные критерии сравнения в структурах.

Итог: работа дает готовые примеры и шаблоны для освоения контейнеров STL, алгоритмов и взаимодействия с пользовательскими типами — полезно для самостоятельного выполнения лабораторных и ускоренного изучения практических аспектов современного C++.