Buckets 2.0.0

Buckets 2.0.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2016年12月
SwiftSwift 版本3.0
SPM支持 Swift Package Manager

Mauricio Santos 维护。



Buckets 2.0.0

  • Mauricio Santos

Buckets

Swift 集合库

Buckets 是 Swift 的一个完整、 tested 和 documented 集合库。

要求

Swift 3.0+ 平台,如

Linux/iOS 9.0+/MacOS 10.10+/watchOS 2.0+/tvOS 9.0+

包含的集合

设置

Swift 包管理器

请参阅 Swift 包管理器文档

手动

您还可以手动将 Buckets 集成到您的 Xcode 项目中。

  • 下载最新的发行版,并将其解压缩到您的项目文件夹中。
  • 打开 Buckets 文件夹,并将 Buckets.xcodeproj 拖放到您的应用项目文件导航器中。这意味着在您的项目内部,而不是在最顶层。
  • 确保 Buckets.framework 的部署目标与应用程序的部署目标相匹配。
  • 打开您的项目“构建阶段”面板。展开“目标依赖项”组,并添加 Buckets.framework
  • 点击面板左上角的 + 按钮,选择“新建拷贝文件阶段”。将“目标”设置为“框架”,并添加 Buckets.framework。每个平台的版本有4个。选择正确的版本。

使用方法

所有集合类型都作为结构体实现。这意味着当它们被赋值给新的常量或变量,或者当它们传递给函数或方法时,它们会被复制。

您不需要担心复制结构体

您在代码中看到的行为始终与你复制了某个东西一样。然而,Swift 只在绝对需要时才在后台执行实际的复制。Swift 管理所有值的复制以确保最佳性能,您不应避免赋值来尝试先发制人优化。

存储桶集合类型以相同的方式进行优化。

操作步骤

import Buckets

var queue = Queue<String>()
queue.enqueue("first")
queue.enqueue("last")
queue.dequeue() // "first"

var deque = Deque<String>()
deque.enqueueLast("last")
deque.enqueueFirst("first")
deque.dequeueFirst() // "first"

var stack = Stack<String>()
stack.push("first")
stack.push("last")
stack.pop() // "last"

var pQueue = PriorityQueue<Int>(sortedBy: <)
pQueue.enqueue(3)
pQueue.enqueue(1)
pQueue.enqueue(2)
pQueue.dequeue() // 1

var multiset = Multiset<String>()
multiset.insert("a")
multiset.insert("b")
multiset.insert("a")
multiset.distinctCount // 2
multiset.count("a") // 2

var multimap = Multimap<String, Int>()
multimap.insertValue(1, forKey: "a")
multimap.insertValue(5, forKey: "a")
multimap["a"] // [1, 5]

var bimap = Bimap<String, Int>()
bimap[key: "a"] = 1
bimap[value: 3] = "b"
bimap[value: 1] // "a"
bimap[key: "b"] // 3

var graph = Graph<String, Int>()
graph["Boston", "NY"] = 5
graph["NY", "Miami"] = 5
graph.pathFrom("Boston", to: "Miami") // ["Boston", "NY", "Miami"]

var sss = String("hola");

var matrix: Matrix<Double> = [[1,2,3], [4,5,6]]
matrix[1, 0] = 5
matrix - [[1,0,1], [1,0,1]] // [[0,2,2],[4,5,5]]

var bitArray: BitArray = [true, false]
bitArray.append(true)
bitArray.cardinality // 2

var circArray = CircularArray<Int>()
circArray.append(1)
circArray.prepend(2)
circArray.first // 2

var bFilter = BloomFilter<String>(expectedCount: 100)
bFilter.insert("a")
bFilter.contains("a") // true

阅读文档

联系方式

毛里西奥·桑托斯,[email protected]