summaryrefslogtreecommitdiffhomepage
path: root/docs/cqueue_api.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/cqueue_api.md')
-rw-r--r--docs/cqueue_api.md49
1 files changed, 11 insertions, 38 deletions
diff --git a/docs/cqueue_api.md b/docs/cqueue_api.md
index dac51564..eb1450a3 100644
--- a/docs/cqueue_api.md
+++ b/docs/cqueue_api.md
@@ -1,20 +1,23 @@
# STC [cqueue](../include/stc/cqueue.h): Queue
![Queue](pics/queue.jpg)
-The **cqueue** is container adapter that gives the programmer the functionality of a queue - specifically, a FIFO (first-in, first-out) data structure. The class template acts as a wrapper to the underlying container - only a specific set of functions is provided. The queue pushes the elements on the back of the underlying container and pops them from the front.
+The **cqueue** is container that gives the programmer the functionality of a queue - specifically, a FIFO (first-in, first-out) data structure. The queue pushes the elements on the back of the underlying container and pops them from the front.
See the c++ class [std::queue](https://en.cppreference.com/w/cpp/container/queue) for a functional reference.
## Header file and declaration
```c
-#include <stc/cqueue.h> /* includes default underlying implementation header cdeq.h */
-
-using_cqueue(X, ctype)
+#define i_tag
+#define i_val // required
+#define i_cmp // required if i_val is a struct
+#define i_valdel
+#define i_valfrom
+#define i_valto
+#define i_valraw
+#include <stc/cqueue.h>
```
-The macro `using_cqueue()` must be instantiated in the global scope. **cqueue** uses normally
-a **cdeq_X** or **clist_X** type as underlying implementation, given as `ctype`. See example below for usage.
-`X` is a type tag name and will affect the names of all cqueue types and methods. E.g. declaring
-`using_cqueue(i, clist_i)`, `X` should be replaced by `i` in all of the following documentation.
+`X` should be replaced by the value of i_tag in all of the following documentation.
+
## Methods
@@ -80,33 +83,3 @@ Output:
```
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
```
-### Example 2
-Use clist as underlying cqueue implementation.
-```c
-#include <stc/cqueue.h>
-#include <stc/clist.h>
-#include <stdio.h>
-
-using_clist(i, int);
-using_cqueue(i, clist_i);
-
-int main() {
- cqueue_i Q = cqueue_i_init();
-
- // push() and pop() a few.
- c_forrange (i, 20)
- cqueue_i_push(&Q, i);
-
- c_forrange (5)
- cqueue_i_pop(&Q);
-
- c_foreach (i, cqueue_i, Q)
- printf(" %d", *i.ref);
-
- cqueue_i_del(&Q);
-}
-```
-Output:
-```
-5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-```