C/C++ | Тесты – Telegram
C/C++ | Тесты
1.95K subscribers
27 photos
473 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Вопросы собесов t.me/+BTbqlW1VbIFmYmVi
Задачи t.me/+9WeVk7cGswkzNTIy
Вакансии t.me/+za2mJYs4riAzMzFi
Download Telegram
🤔 Как работает быстрая сортировка?

Быстрая сортировка (quick sort) — это алгоритм, который рекурсивно делит массив на подмассивы на основе опорного элемента (pivot). Элементы, меньшие опорного, перемещаются в левую часть массива, а элементы, большие — в правую. Процесс продолжается рекурсивно для каждого подмассива, пока все элементы не будут отсортированы. В среднем случае быстрая сортировка имеет сложность O(n log n), но в худшем — O(n^2), если выбирать неудачный опорный элемент.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🤔1
🤔 Какая польза от безымянного пространства имен?

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


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1🤔1
🤔 Какое значение возвращает выражение sizeof(int) в C++ на платформе с 32-битной архитектурой?
Anonymous Quiz
13%
2
69%
4
4%
8
13%
Зависит от компилятора
💊2
🤔 Что будет, если несколько раз вызвать lock?

1. Если используется обычный std::mutex, повторный вызов lock из того же потока вызовет deadlock.
2. Для избежания этой ситуации можно использовать std::recursive_mutex, который позволяет одному потоку многократно блокировать мьютекс


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Что известно об умных указателях?

Обёртки над обычными указателями, автоматически управляющие временем жизни объекта.
- std::unique_ptr — единственный владелец, нельзя копировать.
- std::shared_ptr — подсчёт ссылок, разделённое владение.
- std::weak_ptr — не влияет на счётчик shared_ptr, нужен для избежания циклов.
Плюсы:
- Безопасное управление памятью.
- Нет утечек при правильном использовании.
- Легче соблюдать RAII.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🤔 Что происходит, когда случается коллизия при получении ключа для контейнера?

1. При коллизии несколько ключей имеют одинаковый хеш-код.
2. Контейнер использует методы разрешения коллизий:
o Связанные списки (chaining): все элементы с одним хешем добавляются в связанный список внутри одного bucket'а.
o Открытая адресация: поиск свободной ячейки для хранения данных.
3. После нахождения bucket'а выполняется проверка на равенство ключей с помощью метода equals.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какие есть типы мьютексов?

1. std::mutex: базовый мьютекс для синхронизации.
2. std::recursive_mutex: позволяет одному потоку многократно блокировать мьютекс.
3. std::timed_mutex: поддерживает блокировку с тайм-аутом.
4. std::shared_mutex: позволяет совместный доступ для чтения и эксклюзивный доступ для записи.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🤔 Что такое noexcept?

`noexcept` — это спецификатор в C++, который указывает, что функция не будет выбрасывать исключений. Это помогает компилятору оптимизировать код и предотвратить ненужные проверки на выброс исключений. Функции, помеченные как `noexcept`, могут быть безопасно вызваны в контексте, где выбрасывание исключений может привести к сбою программы. Использование `noexcept` также улучшает производительность в ситуациях, связанных с исключительным управлением.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1