我有一个while
循环,它使用一些list
初始化了double
。
我想输出最小值,但是到目前为止我所做的一切似乎都没有用,因为我没有任何输出。
这是我的代码的相关部分:
list<double> allDistances;
std::ifstream infile("ATXTFile.txt");
while (std::getline(infile, data)) {
//do some stuff
//dist are some double values
allDistances.push_back(dist);
}
cout << min_element(allDistances.begin(), allDistances.end()) << endl;
}
最佳答案
问题在于您打印最小数量的方式
以下将起作用:cout << *min_element(allDistances.begin(), allDistances.end()) << endl;
为什么?
因为min_element
将迭代器返回到最小值而不是最小值本身。
如果需要实际值,则必须取消引用min_element
返回的迭代器。
您可以从documentation中看到min_element
的签名是:
template< class ForwardIt >
ForwardIt min_element( ForwardIt first, ForwardIt last );
并返回ForwardIt
,即正向迭代器