Добавил:
t.me Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 семестр / Вопросы к экзамену. Моё.docx
Скачиваний:
5
Добавлен:
16.07.2023
Размер:
58.39 Кб
Скачать

Int main(){

std::list<int> li(6);

std::iota(li.begin(), li.end(), 0);

// Находим значение 3 в списке

auto it{ find(li.begin(), li.end(), 3) };

// Вставляем 8 прямо перед 3.

li.insert(it, 8);

for (int i : li) // цикл for с итератором

std::cout << i << ' ';

std::cout << '\n';

return 0;

}

Этот код напечатает значения

0 1 2 8 3 4 5

Алгоритм замены replace

replace модифицирует значения элементов контейнера. Пример программы, заменяющий в списке все -1 на 1:

#include <list>

#include <algorithm>

Int main() {

list <int> A;

list <int>::iterator it; int n,x;

cin>>n;

for(int i=0;i<n;i++) {

cin>>x;

A.push_back(x);

}

replace(A.begin(), A.end(), -1, 1);

for(it=A.begin();it!=A.end();it++) {

cout<<*it<<" ";

}

return 0;

}

29. Обработка исключительных ситуаций. Механизм обработки исключений в С++ (try,catch,throw). Назначение и использование пример.

Когда во время выполнения программы происходит ошибка, генерируется исключение, которое можно перехватить и обработать. Если его не обработать, то программа завершится с ошибкой. Исключительными ситуациями может быть ввод некорректной информации, попытка читать и несуществующего файла, деление на ноль и т.д..

Возникновение некорректной ситуации фиксируется в одном месте программы, а ее исправление необходимо осуществлять в другом. Для обработки таких ситуаций применяют механизм обработки исключений.

try{

инструкции, которые могут вызвать исключение

}

catch(объявление_исключения){

обработка исключения

}

#include >iostream<

double divide(int a, int b){

if (b)

return a / b;

throw "Division by zero!";

}

Int main(){

int x{500};

int y{};

try{

double z {divide(x, y)};

std::cout << z << std::endl;

}

catch (const char* error_message){

std::cout << error_message << std::endl;

}

std::cout << "The End..." << std::endl;

}

30. Перехват исключений и раскрутка стека.

Обработка исключений – это механизм, позволяющий двум независимо разработанным программным компонентам взаимодействовать в аномальной ситуации, называемой исключением.

В языке C++ исключения обрабатываются в предложениях catch. Когда какая-то инструкция внутри try-блока возбуждает исключение, то просматривается список последующих предложений catch в поисках такого, который может его обработать.

Процесс, в результате которого программа последовательно покидает составные инструкции и определения функций в поисках предложения catch, способного обработать возникшее исключение, называется раскруткой стека.