Онлайн-редактор кода C++ для собеседований
Собеседование по C++ в общем редакторе: кандидат пишет и компилирует код, а вы видите правки, ошибки компиляции и вывод в реальном времени. Подходит для собеседований системных, игровых и бэкенд-разработчиков. Бесплатно, без регистрации и без установки компилятора.
Бесплатно, без регистрацииПример кода
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {5, 1, 4, 2, 3};
std::sort(v.begin(), v.end());
for (int x : v) std::cout << x << ' ';
std::cout << '\n';
return 0;
}
Вывод
1 2 3 4 5
Что умеет редактор
- Компилятор GCC 10.2: код компилируется и выполняется на сервере в изолированной песочнице, ошибки компиляции и вывод видят все участники.
- Совместное редактирование в реальном времени: до 5 участников, правки и курсоры видны сразу.
- Условие задачи в Markdown прямо в сессии, рядом с кодом.
- Стандартная библиотека под рукой: контейнеры, алгоритмы, строки, умные указатели и потоки ввода-вывода.
- После бесплатного входа — банк задач, режим интервью с таймерами, оценка кандидата и история собеседований.
Как провести собеседование
- Нажмите «Открыть редактор C++» — сессия создастся с примером программы, который можно заменить своей задачей.
- Опишите условие в Markdown и отправьте ссылку кандидату: регистрация ему не нужна.
- Попросите кандидата проверять решение прямо из main — например, вызвать функцию на нескольких входах и вывести результат. Ошибки компиляции и вывод вы увидите одновременно с ним.
Типичные задачи на собеседовании
- Реализовать упрощённый умный указатель наподобие unique_ptr и объяснить идиому RAII: кто и когда освобождает ресурс.
- Написать конструктор перемещения и оператор присваивания перемещением для класса с динамическим буфером и объяснить, когда они вызываются.
- Бинарный поиск без переполнения при вычислении середины: почему (l + r) / 2 опасно и как это исправить.
- LRU-кэш на std::list и std::unordered_map с операциями get и put за O(1).
- Развернуть односвязный список на месте, без дополнительной памяти.
- Два указателя на отсортированном массиве: найти пару с заданной суммой за линейное время.
Ограничения
- Автотестов для C++ пока нет — проверяйте решение вызовами и выводом из main.
- Нет ввода с клавиатуры: std::cin не получит данных — задавайте их в коде.
- Компиляция ограничена 10 секундами, запуск — 3 секундами и 64 КБ вывода.
Частые вопросы
- Какой компилятор используется?
- GCC 10.2. Код компилируется и запускается на сервере, поэтому результат одинаков у всех участников.
- Есть ли автотесты для C++?
- Пока нет. Решение проверяют вызовами из main и выводом — заодно видно, как кандидат тестирует свой код.
- Можно ли подключать сторонние библиотеки?
- Нет, доступна только стандартная библиотека — её достаточно для задач собеседования.
- Можно ли разбить решение на несколько файлов?
- Нет, решение пишется в одном файле. Объявляйте вспомогательные функции и классы выше main — для задач собеседования этого достаточно.
- Нужна ли регистрация?
- Нет. Создайте сессию, отправьте ссылку и начинайте. Вход нужен только для банка задач, режима интервью и истории.