TGViewer
Channel Public Channel
C/C++ | Тесты

C/C++ | Тесты

@easy_c_plus_tests

Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy

Контакт для рекламы: @sendme_ads
Subscribers
1.9K
Photos
31
Videos
0
Links
736

Showing posts older than #2465 · Back to latest

Older Posts 20 shown
Post #2464 226
🤔 О чем следует помнить при вызове исключений в конструкторе?

- Исключения из конструктора предотвращают создание объекта.
- Деструкторы членов класса или базового класса должны корректно освобождать ресурсы.
- Лучше избегать сложной логики, которая может выбрасывать исключения.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Post #2462 220
🤔 Хорошо ли хранить числа с плавающей запятой в качестве ключа контейнера?

Нет, хранить числа с плавающей запятой как ключи не рекомендуется.
1. Числа с плавающей запятой могут иметь проблемы с точностью, что приведёт к некорректному сравнению ключей.
2. Лучше использовать целые числа или строки в качестве ключей, а дробные значения преобразовывать к целым или строковым представлениям.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Post #2459 227
🤔 Как работает new?

Оператор new в C++ выделяет память из кучи (heap) для хранения объекта и возвращает указатель на эту область памяти. Помимо выделения памяти, new также вызывает конструктор объекта, если он определен. В случае, если не хватает памяти для выделения, new выбрасывает исключение std::bad_alloc. Для освобождения памяти, выделенной через new, необходимо использовать оператор delete.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Post #2456 215
🤔 Когда нужно объявлять деструктор виртуальным?

Деструктор должен быть виртуальным, если класс предназначен для использования в качестве базового, и предполагается полиморфное удаление через указатель (Base* ptr = new Derived; delete ptr;). Без виртуального деструктора деструкторы производных классов не будут вызваны, что приведет к утечке памяти.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 👍 1
Post #2454 220
🤔 Что известно о истории умных указателей?

- Первым в стандарт попал auto_ptr в C++98 — оказался неудобным и небезопасным.
- Затем Boost предложил shared_ptr, scoped_ptr, weak_ptr.
- С выходом C++11 появились современные unique_ptr, shared_ptr, weak_ptr.
- auto_ptr был объявлен устаревшим и позже удалён (в C++17).
- Современные умные указатели активно используются для автоматического управления памятью и соблюдения RAII.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 🔥 1
Post #2450 237
🤔 В каком стандарте появился override?

Ключевое слово override было введено в стандарт C++11. До его появления разработчики не могли явно указывать, что метод должен переопределять виртуальный метод базового класса. Это приводило к ошибкам, если сигнатура метода в базовом классе менялась или имя метода было неправильно написано.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 👍 1
Post #2447 229
🤔 Какая сложность удаления в list и vector по итератору?

Удаление по итератору имеет сложность O(1) для списка, поскольку он реализован как двусвязный список и позволяет удалять элементы без сдвига других. Для вектора сложность удаления по итератору составляет O(n), так как элементы в памяти расположены последовательно, и после удаления требуется сдвиг всех последующих элементов, что требует линейного времени.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Post #2444 219
🤔 Как устроена хеш-таблица в unordered_map?

В unordered_map используется хеш-таблица с цепочечной адресацией:
- Данные распределяются по бакетам (ячейкам), определяемым хеш-функцией.
- Если два разных ключа попадают в один бакет (коллизия), элементы связываются в список.
- При большом количестве элементов происходит рехеширование – увеличение количества бакетов и перераспределение данных.
Эта структура обеспечивает быстрые операции поиска, вставки и удаления в среднем за O(1).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 🔥 1
Post #2440 220
🤔 Принцип Open/Closed (открытости/закрытости)?

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

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →