@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
, передаются ссылки на переменные для получения значений.