调用 sort() 没有匹配的函数

新手上路,请多包涵

我正在通过编程自学:使用 C++ 的原则和实践(第 2 版),我在矢量部分。我可以复制并粘贴他们的代码,但仍然无法正常工作。我的代码如下。

 #include "iostream"
#include "vector"
#include "algorithm"

using namespace std;

int main()
{
    cout << "Please enter the temperatures for the last five days\n";
    vector<double> temperatures;

    for(double temp; cin >> temp;){
        temperatures.push_back(temp);
    }
    double sum = 0;
    for (double temp : temperatures){
        sum += temp;
    }
    cout << "Mean temperature is " <<(sum / temperatures.size()) << endl;

    sort(temperatures);
    cout << "Median temperature is " << temperatures[temperatures.size()/2];
}

帮助表示赞赏,解释更好。

原文由 CoopTang 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 944
1 个回答

模板函数 std::sort 需要一对迭代器作为其参数(即 range )和一个可选的比较器。没有 sort 可以直接应用于容器的函数。您从哪里得到将其称为 sort(temperatures) 的想法?要对整个 temperatures 向量进行排序,它应该被称为 std::sort(temperatures.begin(), temperatures.end()) 。我相信那本书有很多例子可以相当清楚地展示它。

此外,标准库头文件通常应包含为 #include <algorithm> ,即使用 <...> 语法,而不是 "..." 语法。

原文由 AnT stands with Russia 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题