gpt4 book ai didi

c++ - 错误 : nth_element- No instance of overloaded function (Median Finder Program)

转载 作者:行者123 更新时间:2023-11-28 07:01:40 26 4
gpt4 key购买 nike

我非常接近完成这个程序。它将找到 5 个值的数组的中位数。我有最后一个错误,我似乎无法摆脱。由于我是 C++ 的新手,所以我不知道问题出在哪里。我在这里和谷歌上一遍又一遍地研究了这个错误;没有运气。

代码如下:

#include <algorithm>
#include <functional>
#include <array>
#include <iostream>
using namespace std;

int main()
{
int integer1, integer2, integer3, integer4, integer5;

//Input of integers
std::cout << "Enter the first integer: ";
std::cin >> integer1;
std::cout << "Enter the second integer: ";
std::cin >> integer2;
std::cout << "Enter the third integer: ";
std::cin >> integer3;
std::cout << "Enter the fourth integer:";
std::cin >> integer4;
std::cout << "Enter the fifth integer:";
std::cin >> integer5;

std::array <int,5> a = {integer1, integer2, integer3, integer4, integer5};

//Sort array
std::sort(a.begin(), a.end());
for (int a : a) {
std::cout << a << " ";
}

std::nth_element(a.begin(), a.begin()+1, a.size()/2, a.end());
std::cout <<"The median of the integers "<<integer1<<", "<<integer2<<", "<<integer3<<", "<<integer4<<", and "<<integer5<< " is " <<a[a.size()/2]<< '\n';
std::endl (std::cout);



return 0;
}

错误状态:“IntelliSense:重载函数“std::nth_element”的实例与参数列表不匹配,参数类型为:(std::_Array_iterator, std::_Array_iterator, unsigned int, std::_Array_iterator)

帮我完成这件事!提前致谢。

最佳答案

您误解了 nth_element 的作用,并试图错误地使用它。

这个函数接受一个不一定排序的范围,并对其进行部分排序,使第 n 个元素位于正确的位置。如果您使用此函数来查找中位数,则无需先进行 sorf。

如果您已经有一个排序范围[first, last),那么该范围的第 n 个元素由 first + n 指向。

关于c++ - 错误 : nth_element- No instance of overloaded function (Median Finder Program),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368851/

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