gpt4 book ai didi

c++ - 有没有更有效的方法来对两个数字进行排序?

转载 作者:太空狗 更新时间:2023-10-29 19:47:05 24 4
gpt4 key购买 nike

我希望 dLowerdHigher 分别具有两个 double 值中的较低值和较高值 - 即,如果它们是错误的方式,则对它们进行排序。最直接的答案似乎是:

void ascending(double& dFirst, double& dSecond)
{
if(dFirst > dSecond)
swap(dFirst,dSecond);
}

ascending(dFoo, dBar);

但这似乎是一件显而易见的事情,我想知道我是否没有使用正确的术语来找到标准例程。

此外,您将如何使它通用?

最佳答案

这是处理它的好方法。它与您将要获得的一样高效。 我怀疑这个特定函数是否有一个公认的名称。 这显然叫做 comparison-swap。

将其归纳为类型非常简单:

template <typename T>
void ascending(T& dFirst, T& dSecond)
{
if (dFirst > dSecond)
std::swap(dFirst, dSecond);
}

证实这个功能:

int main() {
int a=10, b=5;
ascending(a, b);
std::cout << a << ", " << b << std::endl;

double c=7.2, d=3.1;
ascending(c, d);
std::cout << c << ", " << d << std::endl;

return 0;
}

这打印:

5, 10
3.1, 7.2

关于c++ - 有没有更有效的方法来对两个数字进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4135586/

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