26. 杂项算法
ALGORITHM 模块公开了各种数组作算法的集合。
所有函数和交易品种都在 “algorithm” 模块中,使用 require 来访问它。
require daslib/algorithm
26.1. Search
lower_bound (a:array<auto(TT)> const;f:int const;l:int const;val:TT const -&) : auto
lower_bound (a:array<auto(TT)> const;val:TT const -&) : auto
binary_search (a:array<auto(TT)> const;val:TT const -&) : auto
binary_search (a:array<auto(TT)> const;f:int const;last:int const;val:TT const -&) : auto
lower_bound (a:auto const;f:int const;l:int const;val:auto const) : auto
binary_search (a:auto const;f:int const;last:int const;val:auto const) : auto
- lower_bound(a: array<auto(TT)> const; f: int const; l: int const; val: TT const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
f |
int const |
l |
int const |
val |
TT const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- lower_bound(a: array<auto(TT)> const; val: TT const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
val |
TT const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- lower_bound(a: array<auto(TT)> const; f: int const; l: int const; value: TT const; less: block<(a:TT const;b:TT const):bool> const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
f |
int const |
l |
int const |
value |
TT const |
less |
block<(a:TT const;b:TT const):bool> const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- lower_bound(a: array<auto(TT)> const; value: TT const; less: block<(a:TT const;b:TT const):bool> const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
value |
TT const |
less |
block<(a:TT const;b:TT const):bool> const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- binary_search(a: array<auto(TT)> const; val: TT const)
binary_search returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
val |
TT const |
现在适用于所有其他类型的
- binary_search(a: array<auto(TT)> const; f: int const; last: int const; val: TT const)
binary_search returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
f |
int const |
last |
int const |
val |
TT const |
现在适用于所有其他类型的
- binary_search(a: array<auto(TT)> const; val: TT const; less: block<(a:TT const;b:TT const):bool> const)
binary_search returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
val |
TT const |
less |
block<(a:TT const;b:TT const):bool> const |
现在适用于所有其他类型的
- binary_search(a: array<auto(TT)> const; f: int const; last: int const; val: TT const; less: block<(a:TT const;b:TT const):bool> const)
binary_search returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
f |
int const |
last |
int const |
val |
TT const |
less |
block<(a:TT const;b:TT const):bool> const |
现在适用于所有其他类型的
- lower_bound(a: auto const; f: int const; l: int const; val: auto const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
auto const |
f |
int const |
l |
int const |
val |
auto const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- lower_bound(a: auto const; val: auto const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
auto const |
val |
auto const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- lower_bound(a: auto const; f: int const; l: int const; val: auto(TT) const; less: block<(a:TT const;b:TT const):bool> const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
auto const |
f |
int const |
l |
int const |
val |
auto(TT) const |
less |
block<(a:TT const;b:TT const):bool> const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- lower_bound(a: auto const; val: auto(TT) const; less: block<(a:TT const;b:TT const):bool> const)
lower_bound returns auto
argument |
argument type |
---|---|
a |
auto const |
val |
auto(TT) const |
less |
block<(a:TT const;b:TT const):bool> const |
返回一个迭代器,该迭代器指向范围 [first, last] 中的第一个元素,该元素不小于(即大于或等于)值,如果未找到此类元素,则返回 last。
- binary_search(a: auto const; val: auto const)
binary_search returns auto
argument |
argument type |
---|---|
a |
auto const |
val |
auto const |
now for all the other types
- binary_search(a: auto const; f: int const; last: int const; val: auto const)
binary_search returns auto
argument |
argument type |
---|---|
a |
auto const |
f |
int const |
last |
int const |
val |
auto const |
现在适用于所有其他类型的
- binary_search(a: auto const; val: auto(TT) const; less: block<(a:TT const;b:TT const):bool> const)
binary_search returns auto
argument |
argument type |
---|---|
a |
auto const |
val |
auto(TT) const |
less |
block<(a:TT const;b:TT const):bool> const |
现在适用于所有其他类型的
- binary_search(a: auto const; f: int const; last: int const; val: auto(TT) const; less: block<(a:TT const;b:TT const):bool> const)
binary_search returns auto
argument |
argument type |
---|---|
a |
auto const |
f |
int const |
last |
int const |
val |
auto(TT) const |
less |
block<(a:TT const;b:TT const):bool> const |
现在适用于所有其他类型的
26.2. Array manipulation
- unique(a: array<auto(TT)>)
unique returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> |
返回已删除重复项的 a 的元素数组。
- sort_unique(a: array<auto(TT)>)
sort_unique returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> |
返回 的元素数组 a,已排序并删除了重复项。 a 的元素按升序排序。 生成的数组仅包含 unqiue 元素。
- reverse(a: array<auto>)
reverse returns auto
argument |
argument type |
---|---|
a |
array<auto> |
以相反的顺序返回 a 的元素数组。
- combine(a: array<auto(TT)> const; b: array<auto(TT)> const)
combine returns auto
argument |
argument type |
---|---|
a |
array<auto(TT)> const |
b |
array<auto(TT)> const |
返回 a 和 b 的元素的数组。
- reverse(a: auto)
reverse returns auto
argument |
argument type |
---|---|
a |
auto |
以相反的顺序返回 a 的元素数组。
- combine(a: auto const; b: auto const)
combine returns auto
argument |
argument type |
---|---|
a |
auto const |
b |
auto const |
返回 a 和 b 的元素的数组。
26.3. Uncategorized
- erase_all(arr: auto; value: auto const)
erase_all returns auto
argument |
argument type |
---|---|
arr |
auto |
value |
auto const |
从 arr 中擦除所有等于 value 的元素
- topological_sort(nodes: array<auto(Node)> const)
topological_sort returns auto
argument |
argument type |
---|---|
nodes |
array<auto(Node)> const |
拓扑结构是一种图。 每个节点都有一个 id 和 set(没有值的表)依赖项。 依赖项 before 表示来自节点的链接,该链接应出现在排序列表中的节点之前。 返回节点的排序列表。
- intersection(a: table<auto(TT);void> const; b: table<auto(TT);void> const)
intersection returns table<TT;void>
argument |
argument type |
---|---|
a |
table<auto(TT);void> const |
b |
table<auto(TT);void> const |
返回两个集的交集
- union(a: table<auto(TT);void> const; b: table<auto(TT);void> const)
union returns table<TT;void>
argument |
argument type |
---|---|
a |
table<auto(TT);void> const |
b |
table<auto(TT);void> const |
返回两个集合的并集
- difference(a: table<auto(TT);void> const; b: table<auto(TT);void> const)
difference returns table<TT;void>
argument |
argument type |
---|---|
a |
table<auto(TT);void> const |
b |
table<auto(TT);void> const |
返回两组的差值
- identical(a: table<auto(TT);void> const; b: table<auto(TT);void> const)
identical returns bool
argument |
argument type |
---|---|
a |
table<auto(TT);void> const |
b |
table<auto(TT);void> const |
如果两个集相同,则返回 true