如果你有一個集合型斯威夫特(如Set<T>
),那麼你可以刪除一組喜歡的東西......FUNC移除(元) - > [T] {}在集合中迅速
var s = // some set
s.remove(someElement)
它會改變s並從中刪除someElement
。
但是,這是一個變異函數。
是否有一個非變異函數會返回一個新集?像...
let smallerSet = largerSet.removing(someElement)
我可以用filter
但後來事實證明這從O(1)
爲O(n)
時間問題。
如果沒有人可以自己寫一個。是否有這樣的非變異函數名稱的約定?
它總是會爲O(n),因爲你要複製的集... – kennytm
威爾的NSMutableSet幫助https://developer.apple.com/reference/foundation/nsmutableset?我已經看到了混合的結果,專門用於添加/搜索,但刪除速度更快。不確定你的用例,但值得一讀。 –
@kennytm啊是的,這是一個很好的觀點。我沒有想到這一點。謝謝 – Fogmeister