Fat*_*tie 7 subsequence swift swift3
我突然想到在使用Swift中的子序列时,
func suffix(from: Int)似乎与just相同dropFirst(_:)(显然,在长度为"10"的数组中,您只需将输入值从"3"更改为"7".)
只是重复一遍.所以:当然,对于一个长度为十func suffix(from: Int)dropFirst(_:)的数组.我的意思是"2" 与"8" 相同,例如.
同样upTo/ through似乎是相同的dropLast(_:)
除了方便之外还有什么区别吗?
(也许是在错误的条件,性能或?)
我想知道,事实上,在Swift中是否只是通过调用另一个来实现?
它们完全不同.
Collection协议定义.Subsequence从给定的起点Index返回a .Sequence协议定义.SubSequence具有从序列头部移除的给定最大元素数的 a .*与所有协议要求记录的时间复杂性一样,符合类型可能具有较低时间复杂度的实现.例如,一个RandomAccessCollection的dropFirst(_:)方法,将在O(1)时间运行.
但是,当涉及到Array这些方法时,这些方法的行为恰好相同(除了处理超出范围的输入).
这是因为 Array有一个Index类型Int从一个开始0并按顺序向上计数array.count - 1,因此意味着n删除了第一个元素的子序列是从索引开始的相同子序列n.
同样因为Array是a RandomAccessCollection,两种方法都将在O(1)时间内运行.
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |