Mediumtuple
Что такое std::tuple и как им пользоваться?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
`std::tuple<T1, T2, ...>` — гетерогенный контейнер фиксированного размера. Аналог struct с безымянными полями, типы определяются на compile-time.
auto t = std::make_tuple(1, 2.0, "hi"); // tuple<int, double, const char*>
// Доступ
std::get<0>(t); // по индексу
std::get<int>(t); // по типу (если уникален)
std::tuple_size_v<decltype(t)>; // 3
// C++17 structured bindings
auto [i, d, s] = t;
// std::apply вызывает функцию элементами tuple
std::apply([](int a, double b, const char* c) { /* ... */ }, t);Удобен для возврата нескольких значений из функции и для compile-time метапрограммирования (typelist).
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.