如果我有一个结构体...
然后我可以这样做来获取最大的
然而,我无法使用...
因为 `MyStruct` 不可比较。我可以让它可比较,但这样做可能还有一个日期戳要进行比较,所以使其可比较并不理想。
有没有更优雅的方式可以做到这一点?
...
我突然想到,我也可以这样做...
但这会花费更多时间。我不确定它使用哪种排序方法,但它可能是
struct MyStruct {
let number: Int
}
并且我有一个它们的数组...
var array = [MyStruct]()
// populate array with MyStructs
然后我可以这样做来获取最大的
数字
...var maxNumber = 0
for tempStruct in array where tempStruct.number > maxNumber {
maxNumber = tempStruct.number
}
然而,我无法使用...
let maxStruct = array.maxElement()
因为 `MyStruct` 不可比较。我可以让它可比较,但这样做可能还有一个日期戳要进行比较,所以使其可比较并不理想。
有没有更优雅的方式可以做到这一点?
...
我突然想到,我也可以这样做...
let maxStruct = array.sort{$0.number > $1.number}.first()
但这会花费更多时间。我不确定它使用哪种排序方法,但它可能是
n log(n)
,而我的初始方法只是 n
。
maxElement()
。谢谢! - Fogmeister