【发布时间】:2015-08-20 04:57:40
【问题描述】:
我有一个vector<Foo> 和一些函数double toDouble(const Foo& foo),我想在对向量中的所有 Foo 运行 toDouble 函数后找到最小的 double 值。
使用 for 循环解决这个问题很容易,但出于好奇,有没有一种巧妙的方法可以使用标准库算法来解决这个问题?
一个想法是使用std::transform 将vector<Foo> 转换为vector<double>,然后使用std::min_element 找到最小的双精度值,但这需要填充一个新的临时向量...更直接的解决方案?
【问题讨论】:
-
这需要很快吗?如果没有,不要担心临时向量,这是一个完全合理的解决方案。
-
这个问题是出于好奇而不是实用性而提出的......这不是性能关键代码本身,所以同意,临时向量不是什么大问题......我只是想知道是否有标准提供的更好的解决方案......(我可能只是使用 for 循环。)