gpt4 book ai didi

c++ - 列表中的 std::min_element 不返回最小值

转载 作者:太空狗 更新时间:2023-10-29 20:02:11 28 4
gpt4 key购买 nike

我有一个 while 循环,它用一些 double 初始化一个 list

我想输出最小值,但到目前为止我所做的似乎没有用,因为我没有得到任何输出。

这是我代码的相关部分:

    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即前向迭代器

关于c++ - 列表中的 std::min_element 不返回最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com