目录
目录README.md

OSet

Build Status Swift Versions Platforms

Fast, idiomatic Ordered Set data structure for Swift.

Installation

Use Swift Package Manager:

.package(url: "https://github.com/sciv-img/OSet", from: "0.5.0")

If you don’t want to/cannot use SwiftPM, you can always copy the source over (it’s one file).

Usage

OSet supports all the same operations available in the standard Set, by implementing the SetAlgebra protocol. For example:

  1> import OSet
  2> let oset1 = OSet([1, 2, 3]); print(oset1)
OSet([1, 2, 3])
  3> let oset2 = OSet([3, 4, 5]); print(oset2)
OSet([3, 4, 5])
  4> print(oset1.union(oset2))
OSet([1, 2, 3, 4, 5])
  5> print(oset1.symmetricDifference(oset2))
OSet([1, 2, 4, 5])
  6> print(oset1.intersection(oset2))
OSet([3])

It also implements MutableCollection and RandomAccessCollection protocols. This gives access to iteration, subscript get/set, swapping, sorting, etc. For example:

  1> import OSet
  2> var oset = OSet([3, 1, 2]); print(oset)
OSet([3, 1, 2])
  3> print(oset[1])
1
  4> oset[1] = 7; print(oset[1])
7
  5> oset.swapAt(0, 2); print(oset)
OSet([2, 7, 3])
  6> oset.sort(); print(oset)
OSet([2, 3, 7])
  7> for item in oset { print(item) }
2
3
7

Complete documentation can be read directly in the source.

Benchmarks?

Are available here.

关于
73.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号