Kselax.ru

Hacker Kselax — the best hacker in the world

Menu
  • Блог
  • Контакты
  • wp plugin генератор
  • Русский
    • Русский
    • English
Menu

Ответы на вопросы к примеру Е.1

Posted on 23 сентября, 201324 сентября, 2013 by admin

Ответьте на вопросы к примеру из параграфа Е.1

От сам код из примера:

1
2
3
4
5
6
7
8
9
10
void f(vector<X>& v, const X& g)
{
v[2]=g;//X-ое присваивание может генерировать исключение
v.push_back(g);//аллокатор у vector<X> может генерировать исключение
sort(v.begin(),v.end());//Х-ая операция < может генерировать исключение
vector<X>u= v;//X-ый копирующий конструктор может генерировать исключение
//...
//и здесь уничтожается - нужно гарантировать, что X-ый деструктор сработает
//коректно
}

 

Так перечислим вопросы:

Что произойдет, если при выполнении присваивания значения g будет сгенерировано исключение? Я думаю ничего вектор останется в своем прежнем состоянии.

Будет ли при этом вектор v оставлен в недействительном состоянии? Думаю нет.

Что случится если конструктор, вызываемый в процессе копирования g операцией v.push_back(), сгенерирует исключение std::bad_alloc? Просто видимо ничего не произойдет.

Изменится ли при этом число элементов? Точно не скажу, но ведь библиотека защищена количество элементов не должно измениться.

Или в контейнер вектор добавиться недействительный элемент? Нет.

Что произойдет, если операция «меньше чем» из типа Х сгенерирует исключение во время сортировки? Половина элементов останется отсортированой половина нет.

Элементы будут отсортированы частично? Я думаю да.

Или операция сортировки удалит элемент из контейнера и не вернет его назад? Ну фиг его знает возможно, это все нужно тестить.

[youtube]https://www.youtube.com/watch?v=1QKD12EHyvw[/youtube]

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Рубрики

  • C++ (293)
  • JavaScript (1)
  • linux (1)
  • MFC (39)
  • node.js (2)
  • React (3)
  • uncategorized (3)
  • vBulletin (5)
  • Visual Studio (9)
  • wordpress (18)
  • Разное (37)

Метки

Ajax bootstrap CentOS CLI expressjs FormData GDlib google Invisible reCAPTCHA JWT media MFC php react-router-dom redux repository wordpress RTTI STL vBulletin vector Visual Studio WINAPI wordpress wp-plugins XMLHttpRequest Двоичное дерево Задачи С++ Игры С++ Исключения С++ О-большое Операторы_С++ Перегрузка операторов С++ Поиск С++ Потоки Проектирование_С++ С++ Типы_С++ Типы С++ Шаблоны С++ библиотеки локализация макросы С++ сортировка С++

Свежие комментарии

  • RA3PKJ к записи visual C++, создание диалоговых окон.
  • JasonReant к записи Создание и использование статических библиотек .lib в visual studio.
  • MyWin2020 к записи Программка для заполнения форума на vBulletin 3.8.7
  • ScottJip к записи Создание и использование статических библиотек .lib в visual studio.
  • ArnoldKig к записи Создание и использование статических библиотек .lib в visual studio.
©2021 Kselax.ru Theme by ThemeGiant