c++ - 我将 vector 作为 double 传递给函数,但 Visual Studio 将其称为 unsigned int

标签 c++ function vector

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

double findMaxValue(vector<double> v)
{
    sort(v.begin(), v.end());
    int lastIndex = v.size() - 1;
    double maxValue = v[lastIndex];

    return maxValue;
}

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

最佳答案

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

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

  • 您可以通过v通过引用避免复制
  • 您可以制作vector<double>一个const因为你没有在 findMaxValue 里面修改它
  • 您可以使用v.back()而不是v[lastIndex] 。如果你做v一个const ,您将需要使用v.back()以避免错误。
  • 除非这是一个需要您自己编写的学习练习 findMaxValue , *std::max_element(v.begin(), v.end())将对非空 vector 执行相同的操作。

关于c++ - 我将 vector 作为 double 传递给函数,但 Visual Studio 将其称为 unsigned int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21471557/

相关文章:

c++ - QT中,报错: ISO C++ forbids forward references to 'enum' types

时间:2018-02-08 标签:c++cin>>byte strangebehavior

c++ - OpenMesh Decimater 不会减少顶点数

class - PHP>无法按功能嵌入youtube视频

python - 在 Pandas Dataframe 单元格中查找 [Python 列表] 的匹配值之和?

c++ - 将 MPI 结果写入文件

matlab - 'varargin' 函数在仅提供名称-值对时给出错误 : MATLAB

c++ - 对右值引用 vector::push_back 函数如何提高效率感到困惑

math - 非规范化向量

包含线程函数的对象 vector 上的 C++ 错误