Библиотека собеса по C++ | вопросы с собеседований
4.47K subscribers
446 photos
5 videos
228 links
Вопросы с собеседований по C++ и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9ccf302b

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
🍴 Задача на выходные: до скольки считает стандарт?

Стандарт C++ гарантирует, что можно зарегистрировать минимум N функций через std::atexit. Найди баг в этом коде:

#include <cstdlib>
#include <iostream>

void dummy_handler() {
static int counter = 0;
std::cout << "Handler " << ++counter << "\n";
}

int main() {
// Регистрируем 100 обработчиков
for (int i = 0; i < 100; ++i) {
if (std::atexit(dummy_handler) != 0) {
std::cerr << "Failed at " << i << "\n";
return 1;
}
}

std::cout << "All registered!\n";
return 0;
}


Вопрос: Гарантирует ли стандарт, что все 100 обработчиков зарегистрируются? Какое минимальное количество гарантируется? Как правильно обработать ошибку регистрации?

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Какое количество потоков может одновременно удерживать shared_lock на один shared_mutex?
Anonymous Quiz
16%
1
2%
2
21%
Количество ядер процессора
52%
Неограниченное
9%
256
2😁1
Какая сложность у std::unordered_map::find() в худшем случае?
Anonymous Quiz
17%
O(1)
14%
O(log n)
56%
O(n)
11%
O(n log n)
2%
O(√n)
🔥 Задача на выходные: загадка optional chains

std::optional<std::string> get_name() {
return "Alice";
}

int main() {
auto result = get_name()
.transform([](auto&& s) { s += " Smith"; return s; })
.transform([](auto&& s) { s += " Jr."; return s; });

std::cout << *result << std::endl;
std::cout << *get_name() << std::endl;
}


🐸 Задача: Что выведет этот код? Изменится ли исходное значение из get_name()? Почему компилятор может это скомпилировать или отклонить?

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM