Как вернуть через функцию два значения в c++?

Пользователь

от otha_marks , в категории: C/C++ , год назад

Как вернуть через функцию два значения в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от rachel , год назад

@otha_marks 

В C++ можно вернуть два значения через кортеж (std::tuple). Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <tuple>
#include <iostream>

std::tuple<int, double> foo() {
    int a = 1;
    double b = 2.5;
    return std::make_tuple(a, b);
}

int main() {
    auto result = foo();
    int a = std::get<0>(result);
    double b = std::get<1>(result);
    std::cout << a << " " << b << std::endl;
    return 0;
}


В этом примере функция foo() возвращает кортеж из двух значений: int и double. В функции main() результат вызова foo() сохраняется в переменную result, после чего значения из кортежа извлекаются с помощью функции std::get() и сохраняются в переменные a и b соответственно.