mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 15:36:17 +01:00
docs: Move the queue SECTION
Add the content to the new data-structures.md file. Helps: #3037
This commit is contained in:
parent
f88d96e2ad
commit
25aeddd2a7
@ -5,7 +5,7 @@ SPDX-FileCopyrightText: 2011 Collabora, Ltd.
|
||||
SPDX-FileCopyrightText: 2012 Olivier Sessink
|
||||
SPDX-FileCopyrightText: 2011, 2014 Matthias Clasen
|
||||
SPDX-FileCopyrightText: 2019 Emmanuel Fleury
|
||||
SPDX-FileCopyrightText: 2017, 2019 Endless Mobile, Inc.
|
||||
SPDX-FileCopyrightText: 2017, 2018, 2019 Endless Mobile, Inc.
|
||||
SPDX-FileCopyrightText: 2020 Endless OS Foundation, LLC
|
||||
|
||||
# Data Structures
|
||||
@ -310,3 +310,25 @@ and [func@GLib.HashTable.contains] are designed to be used when using `GHashTabl
|
||||
`GHashTable` is not designed to be statically initialised with keys and values known at compile time.
|
||||
To build a static hash table, use a tool such as [gperf](https://www.gnu.org/software/gperf/).
|
||||
|
||||
## Double-ended Queues
|
||||
|
||||
The [struct@GLib.Queue] structure and its associated functions provide a standard queue data structure.
|
||||
Internally, `GQueue` uses the same data structure as [struct@GLib.List] to store elements with the same
|
||||
complexity over insertion/deletion (O(1)) and access/search (O(n)) operations.
|
||||
|
||||
The data contained in each element can be either integer values, by using one of the
|
||||
[Type Conversion Macros](conversion-macros.html), or simply pointers to any type of data.
|
||||
|
||||
As with all other GLib data structures, `GQueue` is not thread-safe. For a thread-safe queue, use
|
||||
[struct@GLib.AsyncQueue].
|
||||
|
||||
To create a new GQueue, use [func@GLib.Queue.new].
|
||||
|
||||
To initialize a statically-allocated GQueue, use `G_QUEUE_INIT` or [method@GLib.Queue.init].
|
||||
|
||||
To add elements, use [method@GLib.Queue.push_head], [method@GLib.Queue.push_head_link],
|
||||
[method@GLib.Queue.push_tail] and [method@GLib.Queue.push_tail_link].
|
||||
|
||||
To remove elements, use [method@GLib.Queue.pop_head] and [method@GLib.Queue.pop_tail].
|
||||
|
||||
To free the entire queue, use [method@GLib.Queue.free].
|
||||
|
@ -24,35 +24,6 @@
|
||||
* MT safe
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:queue
|
||||
* @Title: Double-ended Queues
|
||||
* @Short_description: double-ended queue data structure
|
||||
*
|
||||
* The #GQueue structure and its associated functions provide a standard
|
||||
* queue data structure. Internally, GQueue uses the same data structure
|
||||
* as #GList to store elements with the same complexity over
|
||||
* insertion/deletion (O(1)) and access/search (O(n)) operations.
|
||||
*
|
||||
* The data contained in each element can be either integer values, by
|
||||
* using one of the [Type Conversion Macros][glib-Type-Conversion-Macros],
|
||||
* or simply pointers to any type of data.
|
||||
*
|
||||
* As with all other GLib data structures, #GQueue is not thread-safe.
|
||||
* For a thread-safe queue, use #GAsyncQueue.
|
||||
*
|
||||
* To create a new GQueue, use g_queue_new().
|
||||
*
|
||||
* To initialize a statically-allocated GQueue, use %G_QUEUE_INIT or
|
||||
* g_queue_init().
|
||||
*
|
||||
* To add elements, use g_queue_push_head(), g_queue_push_head_link(),
|
||||
* g_queue_push_tail() and g_queue_push_tail_link().
|
||||
*
|
||||
* To remove elements, use g_queue_pop_head() and g_queue_pop_tail().
|
||||
*
|
||||
* To free the entire queue, use g_queue_free().
|
||||
*/
|
||||
#include "config.h"
|
||||
|
||||
#include "gqueue.h"
|
||||
|
Loading…
Reference in New Issue
Block a user