我正在通过编程自学:使用 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 许可协议
模板函数
std::sort
需要一对迭代器作为其参数(即 range )和一个可选的比较器。没有sort
可以直接应用于容器的函数。您从哪里得到将其称为sort(temperatures)
的想法?要对整个temperatures
向量进行排序,它应该被称为std::sort(temperatures.begin(), temperatures.end())
。我相信那本书有很多例子可以相当清楚地展示它。此外,标准库头文件通常应包含为
#include <algorithm>
,即使用<...>
语法,而不是"..."
语法。