Easyautomodern-cpp
Чем отличается auto от явного указания типа?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
auto выводит тип по инициализатору (auto x = 5; → int). Особенно полезен для итераторов, лямбд и сложных шаблонных типов.
std::vector<std::pair<int, std::string>>::const_iterator it = v.cbegin(); // длинно
auto it = v.cbegin(); // коротко
const int& cr = someValue;
auto a = cr; // int — auto снимает top-level const и ссылку
auto& b = cr; // const int& — сохранить ссылкуВажно: auto отбрасывает top-level cv-квалификаторы и ссылки — для сохранения используйте auto& или decltype(auto). Минус — иногда тип не очевиден из кода.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.