我正在阅读Bjarne Stroustrup新的C ++ PP第二版,在其中他使用排序方法作为排序(someVector)。使用此方法编译代码时,我遇到以下错误。
3 IntelliSense:没有重载函数“sort”的实例与参数列表匹配 参数类型是:(Vector)> c:\ Microsoft_Press \ C ++ \ Debug \ Temperature \ Temperature \ Temperature.cpp 19 2温度
错误1错误C2780:'void std :: sort(_RanIt,_RanIt,_Pr)':需要3个参数 - 1提供c:\ microsoft_press \ c ++ \ debug \ temperature \ temperature \ temperature.cpp 19 1温度
错误2错误C2780:'void std :: sort(_RanIt,_RanIt)':需要2个参数 - 1提供c:\ microsoft_press \ c ++ \ debug \ temperature \ temperature \ temperature.cpp 19 1温度
#include "../std_lib_facilities.h"
int main()
{
vector<double> temps;
for(double temp; cin>>temp;)
{
temps.push_back(temp);
}
double sum = 0;
for(double x : temps)
{
sum+= x;
}
cout<<"Average temperature: "<<sum/temps.size()<<"\n";
sort(temps);
cout<<"Median temperature: "<<temps[temps.size()/2]<<"\n";
}
非常感谢任何帮助。
答案 0 :(得分:3)
C ++中尚未提供单参数排序。它将由概念启用,但也从C ++ 14推迟。
现在,你必须写:
std::sort(temps.begin(), temps.end());
答案 1 :(得分:1)
sort()期望它应该工作的范围的开始和结束。例如,sort(temps.begin(), temps.end());
temps.begin()
和temps.end()
相应地是定义该范围的开始和结束迭代器。