diff options
author | archnim <68890552+archnim@users.noreply.github.com> | 2020-08-05 16:41:42 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-05 12:41:42 -0400 |
commit | d9ed816b10a67e802817daa07b5b823c79bcd13e (patch) | |
tree | 8ae7b6f5670da3f9ed539d03a01ea60a7ca9014d /lib/pure/collections | |
parent | ef6358f0b0be71266d9fa7ae19a3b6f193b305cf (diff) | |
download | Nim-d9ed816b10a67e802817daa07b5b823c79bcd13e.tar.gz |
Added the ability to initialize a deque with an openArray (#15138)
* Add ability to initialize a deque with a sequence Example: var dq = initDeque[char](@['a', 'b', 'c']) * Update deques.nim * Optimized deque initialization * Sequence replaced by open array in deque initialization
Diffstat (limited to 'lib/pure/collections')
-rw-r--r-- | lib/pure/collections/deques.nim | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/pure/collections/deques.nim b/lib/pure/collections/deques.nim index 8150563cc..43ca536b6 100644 --- a/lib/pure/collections/deques.nim +++ b/lib/pure/collections/deques.nim @@ -84,6 +84,12 @@ proc initDeque*[T](initialSize: int = 4): Deque[T] = ## The length of a newly created deque will still be 0. result.initImpl(initialSize) +proc initDeque*[T](arr: openArray[T]): Deque[T] = + ## Create a new deque initialized with an open array + result.initImpl(nextPowerOfTwo(arr.len)) + for i in 0 ..< arr.len: + result.addLast(arr[i]) + proc len*[T](deq: Deque[T]): int {.inline.} = ## Return the number of elements of `deq`. result = deq.count |