EasySTL
Что такое std::pair и std::tuple — и когда что использовать?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
`std::pair<A,B>` — ровно два значения разного типа, доступ через .first и .second. `std::tuple<T1,T2,...>` — произвольное число значений, доступ через std::get<I>(t).
std::pair<int, std::string> p{1, "hello"};
std::cout << p.first << ' ' << p.second;
std::tuple<int, double, std::string> t{1, 2.0, "hi"};
std::cout << std::get<0>(t); // по индексу
std::cout << std::get<std::string>(t); // по типу
// C++17 structured bindings
auto [key, value] = *map_iter; // для pairpair— в API, где нужно вернуть/хранить ровно два значения (map::insert);tuple— для большего числа значений, variadic templates;- Если значения семантически связаны — лучше структуру с именованными полями.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.