Суть : Допустим у нас есть функция, в результате выполнения действий внутри нее мы получаем значения переменных, которые нам необходимо вернуть. Как это сделать? И как при вызове присвоить эти значения двум переменным одновременно?
Варианты:
Например, считать сумму и разность двух переменных:
std::pair<int,int> sumdif(ina a, int b)
{
return pair<int,int>(a+b,a-b);
}
void sumdif(int a, int b, int& sum, int& dif)
{
sum = a+b;
dif = a-b;
}
...
int a = 5, b = 7;
auto p = sumdif(a,b);
cout << "Sum = " << p.first << ", Dif = " << p.second << endl;
или
int a = 5, b = 7, s, d;
sumdif(a,b,s,d);
cout << "Sum = " << s << ", Dif = " << d << endl;
Дополню ответ @Harry
Если под рукой компилятор с поддержкой 11 ого (и выше) стандарта, то можно воспользоваться std::tuple
и вернуть его из функции, эдакое обобщение на std::pair
для произвольноно числа элементов с разными типами
std::tuple<int, int> f()
{
std::tuple<int, int> t = { -1, 123 };
// ...
return t;
}
std::tuple<int, const bool, unsigned> g()
{
std::tuple<int, const bool, unsigned> t = { -1, false, 123 };
// ...
return t;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Macbook C++ C# Ggdghcdyvxghdfjvdfhcdgvxghcdhbcg
При компиляции открывается консоль, которая выводит два отрицательных восьмизначных числаЧто не так?