mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-30 05:43:28 +02:00
docs: Move the queue SECTION
Add the content to the new data-structures.md file. Helps: #3037
This commit is contained in:
committed by
Philip Withnall
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].
|
||||
|
Reference in New Issue
Block a user