`<algorithm>`: `ranges::min`, `ranges::max` 和 `ranges::minmax` 会对每个元素进行两次求值
作者: biart创建于 2026年8月17日更新于 2026年9月11日
标签performanceranges
说明错误
std::ranges::min/max/minmax 在 views::transform 范围上调用了转换,大约每个元素两次。libstdc++ 只调用一次,而 libc++ 的调用次数取决于数据。由于这些重载以值返回 range_value_t<R> 并受 indirectly_copyable_storable 限制,因此每个元素的一次评估似乎是允许的。
内容来源: microsoft/STL