C/C++ | Тесты
1.94K subscribers
26 photos
424 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Вопросы собесов t.iss.one/+BTbqlW1VbIFmYmVi
Задачи t.iss.one/+9WeVk7cGswkzNTIy
Вакансии t.iss.one/+za2mJYs4riAzMzFi
Download Telegram
🤔 Принцип подстановки Барбары Лисков?

Принцип Лисков (LSP) утверждает, что объект базового класса должен быть заменим объектом производного класса без изменения поведения программы. Производный класс не должен нарушать инварианты и контракт базового класса.


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

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


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Какое ключевое слово используется для запрета наследования класса?
Anonymous Quiz
15%
private
2%
public
82%
final
1%
virtual
🤔 В set сложность вставки, удаления, поиска - логарифмическая?

Да, в стандартной реализации `std::set` в C++ вставка, удаление и поиск выполняются за O(log n), так как `set` реализован как сбалансированное бинарное дерево (обычно красно-чёрное дерево). Логарифмическая сложность обеспечивается благодаря тому, что элементы хранятся в отсортированном порядке, и операция деления дерева пополам происходит при каждом шаге. Это делает операции эффективными даже для больших наборов данных.

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

Это адаптер итератора, который используется для вставки элементов в конец контейнера при помощи push_back(). Он упрощает работу с алгоритмами стандартной библиотеки (std::copy, std::generate, std::transform), позволяя динамически расширять контейнер.


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

Spinlock — это механизм синхронизации, где поток активно проверяет блокировку, не засыпая. Deadlock возникает, когда два или более потока ждут друг друга, создавая бесконечную блокировку.

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

Наиболее часто используется size_t или std::atomic<size_t> для потокобезопасности.
- size_t – стандартный тип беззнакового целого, который оптимизирован для хранения размеров контейнеров.
- std::atomic<size_t> – используется в многопоточной среде для атомарного увеличения/уменьшения счетчика.
- В некоторых случаях используют uint32_t или uint64_t, если важно ограничение по размеру.


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