Онлайн-редактор кода 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 прямо в сессии, рядом с кодом.
  • Стандартная библиотека под рукой: контейнеры, алгоритмы, строки, умные указатели и потоки ввода-вывода.
  • После бесплатного входа — банк задач, режим интервью с таймерами, оценка кандидата и история собеседований.

Как провести собеседование

  1. Нажмите «Открыть редактор C++» — сессия создастся с примером программы, который можно заменить своей задачей.
  2. Опишите условие в Markdown и отправьте ссылку кандидату: регистрация ему не нужна.
  3. Попросите кандидата проверять решение прямо из 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 — для задач собеседования этого достаточно.
Нужна ли регистрация?
Нет. Создайте сессию, отправьте ссылку и начинайте. Вход нужен только для банка задач, режима интервью и истории.

Редактор для других языков