Easyinclude-order
Почему нужно группировать #include в определённом порядке?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Согласованный порядок include-ов ловит скрытые зависимости и улучшает читаемость. Свой заголовок первым — проверяет self-sufficiency.
// foo.cpp
#include "foo.h" // 1) соответствующий заголовок (self-sufficiency)
#include <cstdio> // 2) C system headers
#include <cstdlib>
#include <string> // 3) C++ standard headers
#include <vector>
#include <boost/asio.hpp>// 4) сторонние библиотеки
#include "utils.h" // 5) свои заголовки проектаЕсли foo.h работает только после <string>, без первого include это проявится. Внутри группы — алфавитный порядок. Автоматизируют clang-format и include-what-you-use.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.