【问题标题】:No viable conversion from returned value of type 'int' to function return type (vectors)没有从“int”类型的返回值到函数返回类型(向量)的可行转换
【发布时间】:2021-02-28 03:35:39
【问题描述】:

我正在尝试hackerrank问题,他们给出的输出是“打印两个以空格分隔的整数,分别描述最佳(最高)得分增加和最差(最低)得分减少的次数。”现在,每当我尝试只给出 cout 时,它都会抛出一个错误,提示“非 void 函数不返回值”。现在通常情况下,我曾经在这些情况下返回 0,但这里是说“没有从 'int' 类型的返回值到函数返回类型的可行转换。”我真的不知道如何在向量函数中返回 int 或者简单地说,如何将答案返回给编译器。

这是我的功能

vector<int> breakingRecords(vector<int> scores) {
    int min=0,max=0;
    int maxUpdate=0;
    int minUpdate=0;
    for(int i=0;i<scores.size();i++)
    {
        if(i==0)
        {
            min=max=scores[0];
            break;
        }
        if(scores[i]>scores[i-1])
        {
            max=scores[i];
            maxUpdate++;
        }
        else if(scores[i]<scores[i-1])
        {
            min=scores[i];
            minUpdate++;
        }
    }
    return 0;
}

注意:如果我的逻辑有任何错误,请不要纠正。我想自己找出逻辑中的错误,帮助我运行代码。

【问题讨论】:

  • 您能否解释一下您希望如何将0 中的return 语句中的单个整数值转换为vector&lt;int&gt;,这是函数声明返回的内容?您希望它在 C++ 中如何工作?
  • 我没有。我明白你在说什么,但我只是在碰运气。有什么方法可以打印 minUpdate 和 maxUpdate 而不返回任何其他内容?
  • 如果您不返回“其他任何内容”。这就是void 的用途。这里真正的问题是无用的在线编码/黑客/竞赛网站,例如“hackerrank”,仅由随机的编程难题列表组成,没有任何一段实际尝试以任何有组织的方式教授 C++ 的内容。您能够学习如何实现这些算法的唯一地方是 C++ 教科书。而不是hackerrank。那么,如果你的目标是学习 C++,你认为哪里是最适合你学习的地方?
  • 它来自一本书,但这些地方的视觉效果更好,并且可以给人一种竞争感。无论如何,不​​是在这里讨论这个问题,但我找到了答案。我制作了一个向量数组并将 maxupdate 和 minupdate 放入其中并返回它。像魅力一样工作。

标签: c++ function vector compiler-errors return


【解决方案1】:

问题是您将函数设置为返回向量类型的对象,因此返回 0 或不返回任何内容是不可接受的。这里基本上有 3 个选项:

  1. 将您的函数设置为 void 类型 - 然后您只能“cout”并且您很好,或者 甚至什么都没有。
  2. 返回“分数”本身而不实际在函数之外使用它
  3. 将您的函数设置为 int 类型 - 如有必要,返回 0。

祝你好运!

【讨论】:

  • 1.) 错误发生在他们的代码 2.) 的主文件中,但是它返回了问题中给出的数组。我想打印 minUpdate 和 maxUpdate 3。)与 1st 相同
  • 1) 除非您使用错误的函数,否则没有实际的错误原因。您可以添加从 main 调用的函数吗? 2)为什么要为它返回数组而烦恼,你不必对它任何事情,(打印显然应该在函数内部。只需添加 cout
【解决方案2】:

你的问题来自你的返回类型,你不想返回std::vector&lt;int&gt;,但实际上你返回的是int

return 0;

要修复它,只需将 0 更改为 std::vector&lt;int&gt; 变量或将返回值更改为 int

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 2023-01-25
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多