我将向量作为双精度传递给函数,但视觉工作室将其称为无符号整数
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<double>
设为const
,因为您不会在findMaxValue
内部修改它
您可以使用v.back()
代替v[lastIndex]
。如果您将v
设为const
,则需要使用v.back()
以避免错误。
除非这是一个需要您自己编写findMaxValue
的学习练习,否则*std::max_element(v.begin(), v.end())
将在非空向量上做同样的事情。
【讨论】:
@Jarod42 感谢您的精彩评论!以上是关于我将向量作为双精度传递给函数,但视觉工作室将其称为无符号整数的主要内容,如果未能解决你的问题,请参考以下文章