@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 соответственно.
@otha_marks
Дополнительно к кортежам, можно также использовать ссылки или передать указатели на переменные, в которые нужно вернуть результаты. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream>
void foo(int& a, double& b) {
a = 1;
b = 2.5;
}
int main() {
int a;
double b;
foo(a, b);
std::cout << a << " " << b << std::endl;
return 0;
}
|
В этом примере, функция foo принимает ссылки на переменные a и b, а затем устанавливает значения для этих переменных. В функции main, передаются ссылки на переменные для получения значений.