gpt4 book ai didi

c++ - 正确执行 min

转载 作者:IT老高 更新时间:2023-10-28 22:17:31 26 4
gpt4 key购买 nike

Tech-Talk about D 时间 0:43:15 , 讨论了 min 函数的实现。在某些算法中使用时对“稳定性”和“额外洗牌(如果值相等)”的担忧被认为是所示实现的原因之一。

谁能提供一个真实/实际的用例(或提供更详细的解释),其中 min 的这个特定实现是“稳定的”(又名更好),而不是其他可能的实现?或者这只是 alpha-geeks 走得太远的另一个例子?

推荐的实现方式:

template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (rhs < lhs) ? rhs : lhs;
}

其他可能的实现方式:

template <class LHS, class RHS, class Return>
inline Return min(LHS& lhs, RHS& rhs)
{
return (lhs < rhs) ? lhs: rhs;
}

提案N2199提供了基于后者的实现,请注意此时提案未成功。

其他与最小值/最大值相关的建议是N1840 , N2485N2551

最佳答案

在这种情况下,我很确定“稳定”指的是稳定,因为它应用于排序 - 即,当/如果两个元素相等时,它们将保持与开始时相同的顺序.为此,您需要返回 lhs当它小于或等于 rhs 时-- 但在 C++ 中,您(通常)只想使用 operator< 来做到这一点。 , 不依赖于 operator<= .

关于c++ - 正确执行 min,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4174447/

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