作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有
(def a (vec (range 1000000)))
(def b (vec (range 100000)))
并取两个向量的其余部分
(time (dorun (subvec b 1 100000)))
=>"Elapsed time: 3.585556 msecs"
(time (dorun (subvec a 1 1000000)))
=>"Elapsed time: 43.088316 msecs"
文档说这个操作需要 O(1)。我错过了什么吗?
最佳答案
dorun
使用该时间来遍历整个向量切片。
顺便说一句,向量并不懒惰;将它们包装在 dorun
/doall
中是毫无意义的。
关于clojure subvec O(n) 而不是 O(1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16755670/
我正在尝试从 2 元素列表中创建 map Subvec s。 这在 Clojure 中运行良好: (into {} (list (subvec [1 2 3] 1))) >> {2 3} 但在 Clo
vector y_long_name 有 100 个成员,我打算只操作它的一个由前三个成员组成的子 vector 。 subvector 函数在我的代码中用作左值: y_long_name.subve
所以我有 (def a (vec (range 1000000))) (def b (vec (range 100000))) 并取两个向量的其余部分 (time (dorun (subvec b 1
如果我有一个 vec,我如何搜索它以查找它是否包含另一个 vec - 并返回此 subvec 开始的索引? let mut haystack = vec!(0, 0, 0, 1, 48, 120, 4
我是一名优秀的程序员,十分优秀!