- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Swift 文档指出 compactMap()
排序方法的时间复杂度为 O(n + m)
其中 n 是序列的长度,m 是结果的长度。
但是,在查看 implementation 时在标准库中我不明白为什么:
public func _compactMap<ElementOfResult>(
_ transform: (Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] {
var result: [ElementOfResult] = []
for element in self {
if let newElement = try transform(element) {
result.append(newElement)
}
}
return result
}
序列元素只有一个循环,应该是
O(n)
.
最佳答案
文档实际上并没有说明这是否是 时间 或 内存复杂度的算法。
时间复杂度 是 O(n)
然而,确实,内存复杂度是 O(n+m)
,自原Sequence
尺寸n
保存在内存中,而一个新的 Array
尺寸m
也被创建。
关于swift - Swift 'compactMap' Sequence 方法的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63885861/
我希望 allMembers 是 [Member] 类型。但它的类型是 [[Member]]。为什么 compactMap 不返回 [Member] 类型的结果? class Team { l
我正在使用正则表达式规则检查一些动态文本,对正则表达式模式数组的每个索引使用switch .一切正常,但在最后一个 case 中,我希望 map 停止映射并尽早返回!但似乎我无法在 map 函数中 r
是否有可能在 compactMap 返回中添加多个值? 这是我试过的。它不会工作,因为返回需要一个字符串。 var array: [String] = ["This","is","just","an"
Swift 文档指出 compactMap()排序方法的时间复杂度为 O(n + m)其中 n 是序列的长度,m 是结果的长度。 但是,在查看 implementation 时在标准库中我不明白为什么
这个问题在这里已经有了答案: Difference between flatMap and compactMap in Swift (3 个答案) 关闭 4 年前。 谁能描述一下 flatMap 与
如何使用 compactMap 过滤掉属性中可能的 nil 值,这样我就不必预测 nil 属性来返回对象。 目前我有 let objects: [Object] = anotherObject.arr
每隔一段时间,我必须沿着响应链向上走,才能到达已知类的实例。 (只是为了问题的目的接受这个。)我一直在用一个 while 循环来做这个,但我想到使用 sequence() 会更酷,它可以表达响应者像这
var grantedSwiftPermissions: Set? { return (permissions?.compactMap { $0 as? String }.map { Permissi
这个问题在这里已经有了答案: Difference between flatMap and compactMap in Swift (3 个答案) 关闭 4 年前。 我有结构类型对象的数组 A st
在 Swift 4.1 之前,我使用 flatMap 从集合中删除 nil 值。现在此方法已弃用,我需要将其替换为 compactMap。有时我使用带有惰性集合的 flatMap 来优化我的代码,就像
我已经从多个教程中学习了 flatMap/compactMap 用于flatten array of array 但在我的情况下它不起作用或者我没有正确理解它. let myArray = [["Ra
考虑这个代码片段: var a: String? = "abc" var b: String? let result = [a, b].compactMap { $0 } 执行后,result为 ["
使用Combine 的assign(to:) 得到了意想不到的结果直接在 compactMap 之后.这是代码,它在 Xcodes Playground, Xcode Version 13.0 (13
我想在我的项目中实现图表,但是当我打开演示项目时,我得到了这个错误 Value of type 'EnumeratedSequence' has no member 'compactMap' I se
似乎在 Swift 4.1 flatMap 中被弃用了。但是 Swift 4.1 compactMap 中有一个新方法在做同样的事情吗?使用 flatMap,您可以转换集合中的每个对象,然后删除所有为
我正在开发一个基于 Swift3 构建的项目,然后升级到 Swift 4。通过将 Toolchain > Swift Development Snapshot 切换到 XCode 9.2,XCode
我是一名优秀的程序员,十分优秀!