我对编程和 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/