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

C/C++ | Тесты

@easy_c_plus_tests

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

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

Showing posts older than #2254 · Back to latest

Older Posts 20 shown
Post #2253 244
🤔 Что будет, если несколько раз вызвать lock?

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


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Post #2251 234
🤔 Выбрасывание исключения из конструктора — это нормально?

Да, выбрасывание исключения из конструктора допустимо, если объект не может быть корректно инициализирован. Однако необходимо учитывать возможные последствия, такие как утечка памяти.

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

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


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 👍 2
Post #2247 247
🤔 В чем разница set и unordered_set?

Set — это отсортированное множество, которое хранит элементы в порядке возрастания и использует бинарное дерево для внутренней реализации. Unordered_set хранит элементы в произвольном порядке и использует хеш-таблицу для доступа к элементам. В set операции поиска, вставки и удаления имеют сложность O(log n), а в unordered_set — O(1) в среднем случае, но O(n) в худшем случае. Set предпочтителен, когда требуется поддерживать порядок элементов.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 💊 1
Post #2245 267
🤔 Как работает счетчик у shared_ptr?

Счетчик ссылок в `std::shared_ptr` увеличивается каждый раз, когда новый `shared_ptr` создается с указателем на объект, и уменьшается, когда `shared_ptr` уничтожается или перестает указывать на объект. Когда счетчик достигает нуля, объект уничтожается.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 👍 1
Post #2243 276
🤔 Какие есть уровни exception гарантий?

1. No-throw Guarantee: метод или операция не выбрасывает исключений. Пример: деструкторы.
2. Strong Guarantee: при выбросе исключения состояние объекта или программы остаётся неизменным.
3. Basic Guarantee: состояние объекта остаётся корректным, но изменения могут быть частичными.
4. No Guarantee: программа может оказаться в некорректном состоянии при исключении.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 🔥 1
Post #2241 283
🤔 Что можешь рассказать о little-endian и big-endian?

Little-endian и big-endian — это порядки байтов в мультибайтовых данных, используемые в компьютерной архитектуре для хранения данных. В little-endian младший байт сохраняется по низкому адресу, а старший байт по высокому. В big-endian старший байт сохраняется по низкому адресу, а младший по высокому. Выбор порядка байтов влияет на совместимость и производительность системы в различных сценариях использования.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 👍 1
Post #2239 282
🤔 Что будет если в функции помеченной как noexcept бросить исключение?

Если функция, помеченная как `noexcept`, выбросит исключение, программа вызовет `std::terminate()`, что приведёт к немедленному завершению выполнения. Это связано с тем, что `noexcept` гарантирует, что функция не выбросит исключений, и нарушение этого обещания считается критической ошибкой. Использование `noexcept` позволяет оптимизировать код, так как компилятор может делать определённые оптимизации, полагаясь на то, что исключения не будут выбрасываться. Следует избегать выбрасывания исключений в таких функциях.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 👍 1
Post #2237 294
🤔 Как проверить, вылетело ли исключение в каком-то из потоков?

Исключения из потоков можно сохранить в std::exception_ptr через std::current_exception() и передать их в главный поток для обработки.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Post #2234 280
🤔 Почему по идее в конструкторе нужны исключения?

1. Конструктор отвечает за корректную инициализацию объекта, поэтому при ошибке важно сигнализировать о проблеме.
2. Исключения позволяют безопасно остановить создание объекта, если данные или ресурсы не были успешно инициализированы.
3. Это защищает от использования некорректно инициализированных объектов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
  • 👍 1
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 →