Библиотека stl. Контейнеры. Последовательные контейнеры array, vector, list, forward list, deque


Download 0.5 Mb.
bet1/2
Sana04.04.2023
Hajmi0.5 Mb.
#1327377
TuriПрактическая работа
  1   2


ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛ-ХОРАЗМИЙ


САМОСТОЯТЕЛЬНАЯ ПРАКТИЧЕСКАЯ РАБОТА №1.
По предмету «Программирование»
на тему:
«Библиотека STL. Контейнеры. Последовательные контейнеры array, vector, list, forward_list, deque.»


Выполнил:
Студент группы 233-22
Факультета КИ
Направление ИТ-сервис
Турсунбаев Азамат


Принял:
Абдурахманов А.

Ташкент 2023
Вариант – 10
Задание 1. Выполнить следующее:
1. Создать объект-контейнер в соответствии с вариантом задания и заполнить его данными в указанном количестве и в интервале с помощью генератора случайных чисел , тип которых определяется вариантом задания.
2. Вывести содержимое контейнера на экран.
3. Изменить контейнер, удалив из него (см. таб. пункт 3) элемент
4. Затем в конец добавит (см. таб. Пункт 4.) элемент.
5. Вывести содержимое контейнера на экран, используя для доступа к его элементам итераторы.
6. Изменить первый контейнер, удалив из него 3 элемента начиная с N -го элемента (например, если N=2, то начиная c 2 элемента, т.е. 2-ой, 3-ий и 4-тые элементы должны быт удалены.).
7. Создать второй контейнер этого же класса (c размерностью 1-го после выполнения 6 пункта) и заполнить его данными того же типа, что и первый контейнер.
8. Сравнить оба контейнера.
9. Меньшее из них добавит к в конец большего.
10. Просмотрет оба контейнера.

10

list

float

20

100;500] c точностью 0.01

9-й

Mаксимальный


Код:
#include
#include
#include
#include
using namespace std;
int main() {
list container(20);

random_device rd;


mt19937 gen(rd());
uniform_real_distribution<> dis(100.0, 500.0);

// Заполнение контейнера случайными значениями


generate(container.begin(), container.end(), [&]() { return dis(gen); });

// Вывод содержимого контейнера


cout << "Контейнер:" << endl;
for (auto it = container.begin(); it != container.end(); ++it) {
cout << *it << " "; }
cout << endl;

// Удаление 9-го элемента и добавление максимального элемента в конец


auto it = container.begin();
advance(it, 8);
container.erase(it);
container.push_back(*max_element(container.begin(), container.end()));

// Вывод содержимого контейнера с помощью итераторов


cout << "Модифицированный контейнер:" << endl;
for (auto it = container.begin(); it != container.end(); ++it) {cout << *it << " ";}
cout << endl;

// Удаление 3 элементов начиная с 10-го


it = container.begin();
advance(it, 9);
container.erase(it, next(it, 3));

// Создание второго контейнера и заполнение его случайными значениями того же типа


list container2(1);
generate(container2.begin(), container2.end(), [&]() { return dis(gen); });

// Сравнение контейнеров и добавление меньшего в конец большего


if (container.size() < container2.size()) {
container.splice(container.end(), container2, container2.begin());
} else {
container2.splice(container2.end(), container, container.begin());
}

// Вывод содержимого обоих контейнеров


cout << "Последний контейнер 1:" << endl;
for (auto it = container.begin(); it != container.end(); ++it) {cout << *it << " ";}
cout << endl;
cout << "Последний контейнер 2:" << endl;
for (auto it = container2.begin(); it != container2.end(); ++it) {
cout << *it << " ";
}
cout << endl;

return 0;


}

Download 0.5 Mb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling