std :: tuple, std :: pair | Возврат нескольких значений из функции с использованием кортежей и пар в C ++

Опубликовано: 1 Января, 2022

Могут быть случаи, когда вам нужно вернуть несколько значений (могут иметь разные типы данных) при решении проблемы. Один из способов сделать то же самое - использовать указатели, структуры или глобальные переменные, уже обсуждавшиеся здесь.
Есть еще один интересный способ сделать то же самое без использования вышеуказанных методов, используя кортежи (для возврата нескольких значений) и пары (для двух значений).

Мы можем объявить функцию с возвращаемым типом как пару или кортеж (в зависимости от того, что требуется) и можем упаковать возвращаемые значения и вернуть упакованный набор значений. Возвращенные значения можно распаковать в вызывающей функции.

Кортеж

  • Кортеж - это объект, способный содержать набор элементов, каждый из которых может быть разного типа.
  • Шаблон класса std::tuple - это набор разнородных значений фиксированного размера.

Пара

  • Этот класс объединяет пару значений, которые могут быть разных типов.
  • Пара - это частный случай std :: tuple с двумя элементами

Примечание. Кортеж также можно использовать для возврата двух значений вместо использования пары.

Выход:

 Значения, возвращаемые кортежем: 10 5 a
Значения, возвращаемые Pair: 2 5

Эта статья предоставлена Mayank Rawat. Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью и отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++ C