gpt4 book ai didi

c++ - 计算 vector 中存储的值的中位数 - C++?

转载 作者:IT老高 更新时间:2023-10-28 12:36:31 31 4
gpt4 key购买 nike

我是一名编程学生,对于我正在从事的项目,我必须做的事情之一是计算 int 值 vector 的中值。我将仅使用 STL 中的排序函数和 vector 成员函数(例如 .begin().end().size)来执行此操作().

我还应该确保找到 vector 的中值是奇数还是偶数。

卡住了,下面我已经包含了我的尝试。那么我哪里错了?如果您愿意给我一些指示或资源以朝着正确的方向前进,我将不胜感激。

代码:

int CalcMHWScore(const vector<int>& hWScores)
{
const int DIVISOR = 2;
double median;
sort(hWScores.begin(), hWScores.end());
if ((hWScores.size() % DIVISOR) == 0)
{
median = ((hWScores.begin() + hWScores.size()) + (hWScores.begin() + (hWScores.size() + 1))) / DIVISOR);
}
else
{
median = ((hWScores.begin() + hWScores.size()) / DIVISOR)
}

return median;
}

最佳答案

不需要对 vector 进行完全排序:std::nth_element 可以做足够的工作来将中位数放在正确的位置。查看我对 this question 的回答举个例子。

当然,如果你的老师禁止使用正确的工具来完成这项工作,那也无济于事。

关于c++ - 计算 vector 中存储的值的中位数 - C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114797/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com