gpt4 book ai didi

c++ - 找到倒数第二大的数

转载 作者:太空宇宙 更新时间:2023-11-04 15:00:34 27 4
gpt4 key购买 nike

我想从整数列表中找出倒数第二大的数。例如,如果 input = (-10, -47, 3, 4,100,12,200,1) 那么最大数量是 200,而我想要找到的是 100。

这是我的程序,

template<typename T>
T MaxElem(T t, T s)
{
return std::max(t, s);
}
template<typename T, typename ...A>
T MaxElem(T a, T b, A...x)
{
return MaxElem(MaxElem(a,b), x...);
}
template<typename T>
T Second(T t1, T t2)
{
return (t1 < t2)? t2 : t1;
}
template<typename T>
T Second(T t1, T t2, T x)
{
return (t1 < t2) ? ((t2 == x)? t1 : t2) : t1;
}
template<typename T, typename ...args>
T Second(T t1, T t2, args...a)
{
return Second(Second(t1, t2, MaxElem(t1, t2, a...)), a...);
}

它输出 200 作为错误结果。

最佳答案

我认为一个简单的方法如下:

std::sort(numbers.begin(), numbers.end());
std::reverse(numbers.begin(), numbers.end());
cout << numbers[1] ; // second largest

关于c++ - 找到倒数第二大的数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47380985/

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