From 49d7ae6c8e749b6e337de25c1928a2969b6903f3 Mon Sep 17 00:00:00 2001 From: Nocturn9x Date: Wed, 16 Mar 2022 14:08:39 +0100 Subject: [PATCH] Changes to README --- README.md | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f2a6881..ed818a0 100644 --- a/README.md +++ b/README.md @@ -19,26 +19,26 @@ import nimdeque queue = newLinkedDeque[int]() -# Appends at the end +# Appends to the tail queue.add(1) queue.add(2) queue.add(3) -# Prepends at the beginning +# Prepends to the head queue.addLeft(0) queue.addLeft(-1) queue.addLeft(-2) -# Pops the first element in O(1) time +# Pops and returns the first element in O(1) time queue.pop() -# Pops the last element in O(1) time -queue.pop(queue.high()) +# Pops and returns the last element in O(1) time +discard queue.pop(queue.high()) # This can also be written as -queue.pop(^1) +discard queue.pop(^1) # Pops element at position n -queue.pop(n) +discard queue.pop(n) # Supports iteration for i, e in queue: @@ -49,15 +49,16 @@ for e in queue.reversed(): echo e echo queue.len() -echo 5 in queue # false -echo 0 in queue # true +5 in queue # false +0 in queue # true # Item accessing works just like regular sequence types in Nim. # Note that the further the item is from either end of the # queue, the higher the time it takes to retrieve it. For # fast random access, seqs should be used instead -assert queue[0] == -1 -assert queue[^1] == queue[queue.high()] +queue[0] # -1 +queue[^1] +queue[queue.high()] # It's possible to extend a deque with other deques or with seqs # of compatible type @@ -67,6 +68,13 @@ other.add(10) queue.extend(@[5, 6, 7, 8]) queue.extend(other) +# Finds the first occurrence of an +# item in the queue, returns -1 if not +# found + +queue.find(9999) # -1, not found +queue.find(-1) # 0 + # Clears the queue in O(1) time queue.clear() # Clears the queue in O(n) time @@ -100,7 +108,9 @@ some benchmarks as well as the test suite used to validate the behavior of the q 1. I was bored during my programming class 2. That only provides a deque based on `seq`s 3. The deque in that module is a value type -4. I was bored during my programming class +4. The deques in this module allow accessing at arbirary locations +5. More useful procs are implemented +1. I was bored during my programming class ## Performance against a regular seq