Получить два значения из функции
Мне нужно получить из этой функции два значения a*b и a*a. Как сделать чтобы функция вызывалась один раз и получала на выходе два значения типа double?
double dot_product(vector<double> a, vector<double> b) {
double res = 0.0;
//#pragma omp parallel for reduction(+:res)
for (int i = 0; i < a.size(); ++i) {
res += a.at(i) * b.at(i);
}
return res;
}
Ответы (2 шт):
Автор решения: SukhovPro
→ Ссылка
Структурно не поддерживаю идею вопроса. Но ответ в лоб - используйте кортежи (std::tuple).
Автор решения: IL99progC
→ Ссылка
Два значения из функции можно вернуть используя указатели:
void myFunc(double* a, double* b)
{
*a = 2.12;
*b = 3.14;
}
void main()
{
double a, b;
myFunc(&a, &b);
//теперь а = 2,12 b = 3.14
}