从 C++ 中的函数返回对

Returning pair from a function in C++?

本文关键字:返回 函数 C++      更新时间:2023-10-16

我是C++的初学者,我遇到了以下问题:在我的程序中,我有一个函数,我将一个固定大小的数组作为参数传递给该函数。我遍历它并执行一些操作。结果我有 2 个变量 - bra ,我想从函数返回。我创建一个对并为其分配这些值。但是,当我运行整个程序时,编译器会抛出错误 - 无法将 std::p air<> 转换为 int。我想问为什么会这样?

 #include <utility>
  using namespace std;
  pair <double,double> rez;
  //int main() ...
   double sumaf(int k[20])
{
    for(int i=0; i<20; i++)
    {
        if(k[i]>0 && k[i]%3==0)
        {
            a+=k[i];
            br++;
        }
    }
    rez.first=a;
    rez.second=br;
    return rez;
}
您需要

更改sumaf()的返回类型。

此外,不需要全局变量 ( rez (。

#include <utility>
using namespace std;
pair<double, double> sumaf(int k[20])
{
    double a = 0,
           br = 0;
    for(int i = 0; i < 20; i++)
    {
        if (k[i] > 0 && k[i] % 3 == 0)
        {
            a += k[i];
            br++;
        }
    }
    return make_pair(a, br);
}