我将向量作为双精度传递给函数,但视觉工作室将其称为无符号整数

Posted

技术标签:

【中文标题】我将向量作为双精度传递给函数,但视觉工作室将其称为无符号整数【英文标题】:Im passing a vector to a function as a double but visual studio is calling it an unsigned int 【发布时间】:2014-01-31 02:43:43 【问题描述】:

我对编程和 C++ 非常陌生。我正在尝试将向量传递给函数以对其进行排序,并返回其最大值。我似乎能够用我拥有的代码得到正确的答案,但它会截断小数位。这是我的代码:

double findMaxValue(vector<double> v)

    sort(v.begin(), v.end());
    int lastIndex = v.size() - 1;
    double maxValue = v[lastIndex];

    return maxValue;

我在这里发现了一些类似的问题,但它们似乎都远远超出了我的知识水平。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

截断发生在函数代码之外。这也可能与在调用findMaxValue 的代码中打印值有关。

以下是关于实现的一些注意事项:

您可以通过引用传递v以避免复制 您可以将vector&lt;double&gt; 设为const,因为您不会在findMaxValue 内部修改它 您可以使用v.back() 代替v[lastIndex]。如果您将v 设为const,则需要使用v.back() 以避免错误。 除非这是一个需要您自己编写findMaxValue 的学习练习,否则*std::max_element(v.begin(), v.end()) 将在非空向量上做同样的事情。

【讨论】:

@Jarod42 感谢您的精彩评论!

以上是关于我将向量作为双精度传递给函数,但视觉工作室将其称为无符号整数的主要内容,如果未能解决你的问题,请参考以下文章

如何将双精度值从 json 转换为函数

如何将向量传递给函数?

错误使用 .* 整数只能与同一类的整数或双精度标量组合

如何将 C# 中的二维数组传递给 C++ DLL?

将字符串转换为双精度,然后将其推送到 While 循环中的向量

将内联双精度数组作为方法参数传递