Разные подходы к сортировке вектора
std::sort сортирует диапазон по возрастанию по умолчанию. Лямбда задаёт другой строгий порядок; собственная пузырьковая сортировка полезна как учебный, но обычно более медленный вариант.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
std::sort сортирует диапазон по возрастанию по умолчанию. Лямбда задаёт другой строгий порядок; собственная пузырьковая сортировка полезна как учебный, но обычно более медленный вариант.
Читать ответБудет выведено 12 без разделителя. Постинкремент сначала даёт старое значение 1 для cout, затем увеличивает исходный a; ссылка b после этого видит 2.
Читать ответПри обычном ABI с sizeof(bool)=1 и выравниванием int16_t/int32_t на 2/4 байта получится A size: 8 и B size: 12. Разница возникает из-за промежутков выравнивания.
Читать ответДеструктор сначала проверяет наличие общего счётчика, затем уменьшает его. Только последний владелец удаляет объект и сам счётчик; иначе ресурс остаётся доступным другим владельцам.
Читать ответВ исходной функции вектор передан по значению, поэтому сортировка не видна вызывающему коду. Для изменения исходного контейнера нужен параметр std::vector<int>&.
Читать ответПоследовательное захватывание безопасно только при общем порядке во всех местах программы. Вызовы с переставленными mutex могут зависнуть; передача одного mutex дважды тоже требует отдельной обработки.
Читать ответУдалите элемент через items.erase(items.begin() + 4), предварительно убедившись, что items.size() больше 4. Нумерация индексов начинается с нуля.
Читать ответВерните 0 для пустого дерева и 1 для узла без детей. Для остальных узлов результат равен сумме количества листьев слева и справа; значение ключа не влияет на подсчёт.
Читать ответРекурсивному шаблону не хватает базовой специализации F<0> со значением 1. Без неё инстанцирование продолжится к отрицательным аргументам и достигнет ограничения компилятора.
Читать ответБудет напечатано 1. primary_exception наследуется от std::exception, поэтому подходит первый catch; обработчики проверяются по порядку, а не по наибольшей специфичности.
Читать ответПоказанный алгоритм уже корректно обходит исходную строку и добавляет слеш перед каждым совпадением. Утверждение о неправильном обходе не подтверждается этим фрагментом.
Читать ответНужен общий управляющий блок с объектом и числом владельцев. Copy увеличивает число, move переносит указатель на блок, а последний destructor освобождает ресурс. Все операции должны поддерживать пустое состояние.
Читать ответ