- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我非常接近完成这个程序。它将找到 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/
我很难掌握应该如何使用 std::nth_element ,因为我有点生疏。 裁判说: Rearranges the elements in the range [first,last), in su
有人知道 std::nth_element 的不同实现的预期运行时间和最坏情况下的运行时间吗?我几乎每天都使用这个算法。 我对最近的 Microsoft 编译器附带的 STL 版本特别感兴趣,但有关此
StackOverflow 和其他地方有很多声称 nth_element 是 O(n) 并且通常使用 Introselect 实现的声明:http://en.cppreference.com/w/cp
我明白 (1) std::nth_element对跨越 [first, last) 的数组元素进行排序,使得 !(*j > *i) 适用于 [first, nth) 中的任何 i 和 [nth, la
我正在尝试使用第 nth_element 找到 (x,y) 点的 vector 的中值 cv::Point2f medOffset; vector tempOffset
我想在一个类中将函数 nth_element 与我自己的排序函数(应该可以访问对象的数据)一起使用。目前,我正在做以下事情: class Foo { public: glm::vec3 *po
我想用 C++ 计算 float 组的中值: float Median( FloatArray const * constFloatArray ) { FloatArray scratc
我想从给定的未排序 vector 中获取第 n 个最小的元素。我发现标准库中有一个方法。但是我不明白下面的结果。 我使用条目为 {3,4,5,2,3} 的 vector ,并希望获得第二小的元素。如果
来自 std::nth_element 的文档我们有: template void nth_element( RandomIt first, RandomIt nth, RandomIt last )
前面章节中,已经给大家介绍了 sort()、stable_sort()、partial_sort() 这些函数的功能和用法,本节再介绍一个排序函数,即 nth_element() 函数。 不过,在系统
我看过一段代码: template T getMedian(vector& data_vec) { assert(!data_vec.empty()); typename vector
下面的代码将无法编译。第 2 行到最后一行 (nth_element...) 有错误。这似乎与比较器有关。编译器声称“术语不计算为采用 2 个参数的函数”。如何修复编译错误? struct R
我想在 python 中实现 Vantage Point Tree,但它使用 C++ 中的 std::nth_element。 所以我想在 Python 或 numpy 中找到等效的“nth_elem
根据 cppreference.com,C++ STL 排序算法的复杂度为: 排序:O(N log(N)) partial_sort:“大约”O(N log(M)),其中 M 是距离(中间优先) nt
我不想得到排序数组,只是第 n 个元素的值。例如,给定数组 a = [20, 5, 1, -3] 我希望能够查询 nth_element(a,2) = 1 在 C++ 中,有一个函数 std::nt
我在任何地方都没有找到这个特定的主题... 我在 23 个整数的 std::vector 中调用 nth_element() 算法大约 400,000 次,更精确的“无符号短”值。 我想提高计算速度,
我有一个算法可以在我的双核 3 GHz Intel 处理器上平均运行 250 毫秒,我正在尝试优化它。目前,我有一个 std::nth_element在 std::vector 上调用了大约 6,00
我正在将一些 C++ 代码移植到 C#。 C# 是否有等价于 std::nth_element()还是我需要自己动手? 最佳答案 我假设您正在寻找一个访问器,该访问器通过对集合执行部分排序来返回无序集
我感兴趣的是找到 vector 中等于中位数的第一个(最左边)元素的最有效方法。找到中位数很简单: std::nth_element(first, middle, last); auto median
我正在自学 c++ 和 eigen,所以也许这是一个简单的问题。 给定 n 和 0 "<"m "<"n,以及一个 n vector d 的 float 。具体来说: VectorXf d = Vect
我是一名优秀的程序员,十分优秀!