36
37
<th width="100%" align="center">GLib Reference Manual</th>
37
38
<td><a accesskey="n" href="glib-Pointer-Arrays.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
39
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id3371634" class="shortcut">Top</a>
41
<a href="#id3372134" class="shortcut">Description</a></nobr></td></tr>
40
<tr><td colspan="5" class="shortcuts">
41
<a href="#glib-Arrays.synopsis" class="shortcut">Top</a>
43
<a href="#glib-Arrays.description" class="shortcut">Description</a>
43
46
<div class="refentry" lang="en">
44
47
<a name="glib-Arrays"></a><div class="titlepage"></div>
45
48
<div class="refnamediv"><table width="100%"><tr>
48
<a name="id3371634"></a><span class="refentrytitle">Arrays</span>
50
<p>Arrays — arrays of arbitrary elements which grow automatically as elements are added</p>
50
<h2><span class="refentrytitle"><a name="glib-Arrays.top_of_page"></a>Arrays</span></h2>
51
<p>Arrays — arrays of arbitrary elements which grow automatically as elements are added</p>
52
53
<td valign="top" align="right"></td>
53
54
</tr></table></div>
54
55
<div class="refsynopsisdiv">
56
<a name="glib-Arrays.synopsis"></a><h2>Synopsis</h2>
56
57
<pre class="synopsis">
58
59
#include <glib.h>
61
<a class="link" href="glib-Arrays.html#GArray">GArray</a>;
62
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-new">g_array_new</a> (<a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> zero_terminated,
63
<a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> clear_,
64
<a class="link" href="glib-Basic-Types.html#guint">guint</a> element_size);
65
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-sized-new">g_array_sized_new</a> (<a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> zero_terminated,
66
<a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> clear_,
67
<a class="link" href="glib-Basic-Types.html#guint">guint</a> element_size,
68
<a class="link" href="glib-Basic-Types.html#guint">guint</a> reserved_size);
69
#define <a class="link" href="glib-Arrays.html#g-array-append-val">g_array_append_val</a> (a,v)
70
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-append-vals">g_array_append_vals</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
71
<a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a> data,
72
<a class="link" href="glib-Basic-Types.html#guint">guint</a> len);
73
#define <a class="link" href="glib-Arrays.html#g-array-prepend-val">g_array_prepend_val</a> (a,v)
74
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-prepend-vals">g_array_prepend_vals</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
75
<a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a> data,
76
<a class="link" href="glib-Basic-Types.html#guint">guint</a> len);
77
#define <a class="link" href="glib-Arrays.html#g-array-insert-val">g_array_insert_val</a> (a,i,v)
78
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-insert-vals">g_array_insert_vals</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
79
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_,
80
<a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a> data,
81
<a class="link" href="glib-Basic-Types.html#guint">guint</a> len);
82
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-remove-index">g_array_remove_index</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
83
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_);
84
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-remove-index-fast">g_array_remove_index_fast</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
85
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_);
86
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-remove-range">g_array_remove_range</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
87
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_,
88
<a class="link" href="glib-Basic-Types.html#guint">guint</a> length);
89
void <a class="link" href="glib-Arrays.html#g-array-sort">g_array_sort</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
90
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc">GCompareFunc</a> compare_func);
91
void <a class="link" href="glib-Arrays.html#g-array-sort-with-data">g_array_sort_with_data</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
92
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc">GCompareDataFunc</a> compare_func,
93
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);
94
#define <a class="link" href="glib-Arrays.html#g-array-index">g_array_index</a> (a,t,i)
95
<a class="link" href="glib-Arrays.html#GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-set-size">g_array_set_size</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
96
<a class="link" href="glib-Basic-Types.html#guint">guint</a> length);
97
<a class="link" href="glib-Basic-Types.html#gchar">gchar</a>* <a class="link" href="glib-Arrays.html#g-array-free">g_array_free</a> (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
98
<a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> free_segment);
61
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>;
62
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-new" title="g_array_new ()">g_array_new</a> (<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean">gboolean</a> zero_terminated,
63
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean">gboolean</a> clear_,
64
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> element_size);
65
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-sized-new" title="g_array_sized_new ()">g_array_sized_new</a> (<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean">gboolean</a> zero_terminated,
66
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean">gboolean</a> clear_,
67
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> element_size,
68
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> reserved_size);
69
#define <a class="link" href="glib-Arrays.html#g-array-append-val" title="g_array_append_val()">g_array_append_val</a> (a,v)
70
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-append-vals" title="g_array_append_vals ()">g_array_append_vals</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
71
<a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer">gconstpointer</a> data,
72
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> len);
73
#define <a class="link" href="glib-Arrays.html#g-array-prepend-val" title="g_array_prepend_val()">g_array_prepend_val</a> (a,v)
74
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-prepend-vals" title="g_array_prepend_vals ()">g_array_prepend_vals</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
75
<a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer">gconstpointer</a> data,
76
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> len);
77
#define <a class="link" href="glib-Arrays.html#g-array-insert-val" title="g_array_insert_val()">g_array_insert_val</a> (a,i,v)
78
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-insert-vals" title="g_array_insert_vals ()">g_array_insert_vals</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
79
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_,
80
<a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer">gconstpointer</a> data,
81
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> len);
82
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-remove-index" title="g_array_remove_index ()">g_array_remove_index</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
83
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_);
84
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-remove-index-fast" title="g_array_remove_index_fast ()">g_array_remove_index_fast</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
85
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_);
86
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-remove-range" title="g_array_remove_range ()">g_array_remove_range</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
87
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_,
88
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> length);
89
void <a class="link" href="glib-Arrays.html#g-array-sort" title="g_array_sort ()">g_array_sort</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
90
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()">GCompareFunc</a> compare_func);
91
void <a class="link" href="glib-Arrays.html#g-array-sort-with-data" title="g_array_sort_with_data ()">g_array_sort_with_data</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
92
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()">GCompareDataFunc</a> compare_func,
93
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> user_data);
94
#define <a class="link" href="glib-Arrays.html#g-array-index" title="g_array_index()">g_array_index</a> (a,t,i)
95
<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* <a class="link" href="glib-Arrays.html#g-array-set-size" title="g_array_set_size ()">g_array_set_size</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
96
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> length);
97
<a class="link" href="glib-Basic-Types.html#gchar" title="gchar">gchar</a>* <a class="link" href="glib-Arrays.html#g-array-free" title="g_array_free ()">g_array_free</a> (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
98
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean">gboolean</a> free_segment);
101
101
<div class="refsect1" lang="en">
102
<a name="id3372134"></a><h2>Description</h2>
102
<a name="glib-Arrays.description"></a><h2>Description</h2>
104
104
Arrays are similar to standard C arrays, except that they grow automatically
105
105
as elements are added.
113
To create a new array use <a class="link" href="glib-Arrays.html#g-array-new"><code class="function">g_array_new()</code></a>.
116
To add elements to an array, use <a class="link" href="glib-Arrays.html#g-array-append-val"><code class="function">g_array_append_val()</code></a>, <a class="link" href="glib-Arrays.html#g-array-append-vals"><code class="function">g_array_append_vals()</code></a>,
117
<a class="link" href="glib-Arrays.html#g-array-prepend-val"><code class="function">g_array_prepend_val()</code></a>, and <a class="link" href="glib-Arrays.html#g-array-prepend-vals"><code class="function">g_array_prepend_vals()</code></a>.
120
To access an element of an array, use <a class="link" href="glib-Arrays.html#g-array-index"><code class="function">g_array_index()</code></a>.
123
To set the size of an array, use <a class="link" href="glib-Arrays.html#g-array-set-size"><code class="function">g_array_set_size()</code></a>.
126
To free an array, use <a class="link" href="glib-Arrays.html#g-array-free"><code class="function">g_array_free()</code></a>.
113
To create a new array use <a class="link" href="glib-Arrays.html#g-array-new" title="g_array_new ()"><code class="function">g_array_new()</code></a>.
116
To add elements to an array, use <a class="link" href="glib-Arrays.html#g-array-append-val" title="g_array_append_val()"><code class="function">g_array_append_val()</code></a>, <a class="link" href="glib-Arrays.html#g-array-append-vals" title="g_array_append_vals ()"><code class="function">g_array_append_vals()</code></a>,
117
<a class="link" href="glib-Arrays.html#g-array-prepend-val" title="g_array_prepend_val()"><code class="function">g_array_prepend_val()</code></a>, and <a class="link" href="glib-Arrays.html#g-array-prepend-vals" title="g_array_prepend_vals ()"><code class="function">g_array_prepend_vals()</code></a>.
120
To access an element of an array, use <a class="link" href="glib-Arrays.html#g-array-index" title="g_array_index()"><code class="function">g_array_index()</code></a>.
123
To set the size of an array, use <a class="link" href="glib-Arrays.html#g-array-set-size" title="g_array_set_size ()"><code class="function">g_array_set_size()</code></a>.
126
To free an array, use <a class="link" href="glib-Arrays.html#g-array-free" title="g_array_free ()"><code class="function">g_array_free()</code></a>.
128
128
<div class="example">
129
<a name="id3372259"></a><p class="title"><b>Example 19. Using a <span class="structname">GArray</span> to store <span class="type">gint</span> values</b></p>
129
<a name="id3426081"></a><p class="title"><b>Example 19. Using a <span class="structname">GArray</span> to store <span class="type">gint</span> values</b></p>
130
130
<div class="example-contents"><pre class="programlisting">
134
133
/* We create a new array to store gint values.
135
134
We don't want it zero-terminated or cleared to 0's. */
136
135
garray = g_array_new (FALSE, FALSE, sizeof (gint));
137
136
for (i = 0; i < 10000; i++)
138
137
g_array_append_val (garray, i);
140
138
for (i = 0; i < 10000; i++)
141
139
if (g_array_index (garray, gint, i) != i)
142
140
g_print ("ERROR: got %d instead of %d\n",
143
141
g_array_index (garray, gint, i), i);
145
142
g_array_free (garray, TRUE);
148
145
<br class="example-break">
150
147
<div class="refsect1" lang="en">
151
<a name="id3372277"></a><h2>Details</h2>
148
<a name="glib-Arrays.details"></a><h2>Details</h2>
152
149
<div class="refsect2" lang="en">
153
<a name="id3372297"></a><h3>
154
<a name="GArray"></a>GArray</h3>
155
<a class="indexterm" name="id3372309"></a><pre class="programlisting">typedef struct {
150
<a name="GArray"></a><h3>GArray</h3>
151
<pre class="programlisting">typedef struct {
182
177
<div class="refsect2" lang="en">
183
<a name="id3372395"></a><h3>
184
<a name="g-array-new"></a>g_array_new ()</h3>
185
<a class="indexterm" name="id3372407"></a><pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray">GArray</a>* g_array_new (<a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> zero_terminated,
186
<a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a> clear_,
187
<a class="link" href="glib-Basic-Types.html#guint">guint</a> element_size);</pre>
178
<a name="g-array-new"></a><h3>g_array_new ()</h3>
179
<pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* g_array_new (<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean">gboolean</a> zero_terminated,
180
<a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean">gboolean</a> clear_,
181
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> element_size);</pre>
189
Creates a new <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
183
Creates a new <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
191
185
<div class="variablelist"><table border="0">
192
186
<col align="left" valign="top">
195
<td><p><span class="term"><em class="parameter"><code>zero_terminated</code></em> :</span></p></td>
197
<a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the array should have an extra element at the end
189
<td><p><span class="term"><em class="parameter"><code>zero_terminated</code></em> :</span></p></td>
190
<td>%TRUE if the array should have an extra element at the end
198
191
which is set to 0.
202
<td><p><span class="term"><em class="parameter"><code>clear_</code></em> :</span></p></td>
204
<a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a> elements should be automatically cleared to 0
195
<td><p><span class="term"><em class="parameter"><code>clear_</code></em> :</span></p></td>
196
<td>%TRUE if <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> elements should be automatically cleared to 0
205
197
when they are allocated.
209
<td><p><span class="term"><em class="parameter"><code>element_size</code></em> :</span></p></td>
201
<td><p><span class="term"><em class="parameter"><code>element_size</code></em> :</span></p></td>
210
202
<td>the size of each element in bytes.
214
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
215
<td>the new <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
206
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
207
<td>the new <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
395
371
<div class="refsect2" lang="en">
396
<a name="id3373127"></a><h3>
397
<a name="g-array-prepend-vals"></a>g_array_prepend_vals ()</h3>
398
<a class="indexterm" name="id3373140"></a><pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray">GArray</a>* g_array_prepend_vals (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
399
<a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a> data,
400
<a class="link" href="glib-Basic-Types.html#guint">guint</a> len);</pre>
372
<a name="g-array-prepend-vals"></a><h3>g_array_prepend_vals ()</h3>
373
<pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* g_array_prepend_vals (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
374
<a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer">gconstpointer</a> data,
375
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> len);</pre>
402
377
Adds <em class="parameter"><code>len</code></em> elements onto the start of the array.
405
This operation is slower than <a class="link" href="glib-Arrays.html#g-array-append-vals"><code class="function">g_array_append_vals()</code></a> since the existing elements
380
This operation is slower than <a class="link" href="glib-Arrays.html#g-array-append-vals" title="g_array_append_vals ()"><code class="function">g_array_append_vals()</code></a> since the existing elements
406
381
in the array have to be moved to make space for the new elements.
408
383
<div class="variablelist"><table border="0">
409
384
<col align="left" valign="top">
412
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
413
<td>a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
387
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
388
<td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
417
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
392
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
418
393
<td>a pointer to the elements to prepend to the start of the array.
422
<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
397
<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
423
398
<td>the number of elements to prepend.
427
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
428
<td>the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
402
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
403
<td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
481
451
<div class="refsect2" lang="en">
482
<a name="id3373406"></a><h3>
483
<a name="g-array-insert-vals"></a>g_array_insert_vals ()</h3>
484
<a class="indexterm" name="id3373419"></a><pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray">GArray</a>* g_array_insert_vals (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
485
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_,
486
<a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a> data,
487
<a class="link" href="glib-Basic-Types.html#guint">guint</a> len);</pre>
452
<a name="g-array-insert-vals"></a><h3>g_array_insert_vals ()</h3>
453
<pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* g_array_insert_vals (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
454
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_,
455
<a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer">gconstpointer</a> data,
456
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> len);</pre>
489
Inserts <em class="parameter"><code>len</code></em> elements into a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a> at the given index.
458
Inserts <em class="parameter"><code>len</code></em> elements into a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> at the given index.
491
460
<div class="variablelist"><table border="0">
492
461
<col align="left" valign="top">
495
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
496
<td>a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
464
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
465
<td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
500
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
469
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
501
470
<td>the index to place the elements at.
505
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
474
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
506
475
<td>a pointer to the elements to insert.
510
<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
479
<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
511
480
<td>the number of elements to insert.
515
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
516
<td>the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
484
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
485
<td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
525
492
<div class="refsect2" lang="en">
526
<a name="id3373571"></a><h3>
527
<a name="g-array-remove-index"></a>g_array_remove_index ()</h3>
528
<a class="indexterm" name="id3373585"></a><pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray">GArray</a>* g_array_remove_index (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
529
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_);</pre>
493
<a name="g-array-remove-index"></a><h3>g_array_remove_index ()</h3>
494
<pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* g_array_remove_index (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
495
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_);</pre>
531
Removes the element at the given index from a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
497
Removes the element at the given index from a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
532
498
The following elements are moved down one place.
534
500
<div class="variablelist"><table border="0">
535
501
<col align="left" valign="top">
538
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
539
<td>a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
504
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
505
<td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
543
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
509
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
544
510
<td>the index of the element to remove.
548
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
549
<td>the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
514
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
515
<td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
558
522
<div class="refsect2" lang="en">
559
<a name="id3373689"></a><h3>
560
<a name="g-array-remove-index-fast"></a>g_array_remove_index_fast ()</h3>
561
<a class="indexterm" name="id3373703"></a><pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray">GArray</a>* g_array_remove_index_fast (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
562
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_);</pre>
523
<a name="g-array-remove-index-fast"></a><h3>g_array_remove_index_fast ()</h3>
524
<pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* g_array_remove_index_fast (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
525
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_);</pre>
564
Removes the element at the given index from a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
527
Removes the element at the given index from a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
565
528
The last element in the array is used to fill in the space, so this function
566
does not preserve the order of the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>. But it is faster than
567
<a class="link" href="glib-Arrays.html#g-array-remove-index"><code class="function">g_array_remove_index()</code></a>.
529
does not preserve the order of the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. But it is faster than
530
<a class="link" href="glib-Arrays.html#g-array-remove-index" title="g_array_remove_index ()"><code class="function">g_array_remove_index()</code></a>.
569
532
<div class="variablelist"><table border="0">
570
533
<col align="left" valign="top">
573
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
536
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
574
537
<td>a <em class="parameter"><code>GArray</code></em>.
578
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
541
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
579
542
<td>the index of the element to remove.
583
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
584
<td>the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
546
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
547
<td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
593
554
<div class="refsect2" lang="en">
594
<a name="id3373824"></a><h3>
595
<a name="g-array-remove-range"></a>g_array_remove_range ()</h3>
596
<a class="indexterm" name="id3373839"></a><pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray">GArray</a>* g_array_remove_range (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
597
<a class="link" href="glib-Basic-Types.html#guint">guint</a> index_,
598
<a class="link" href="glib-Basic-Types.html#guint">guint</a> length);</pre>
555
<a name="g-array-remove-range"></a><h3>g_array_remove_range ()</h3>
556
<pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* g_array_remove_range (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
557
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> index_,
558
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> length);</pre>
600
560
Removes the given number of elements starting at the given index from a
601
<a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>. The following elements are moved to close the gap.
561
<a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. The following elements are moved to close the gap.
603
563
<div class="variablelist"><table border="0">
604
564
<col align="left" valign="top">
607
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
567
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
608
568
<td>a <em class="parameter"><code>GArray</code></em>.
612
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
572
<td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
613
573
<td>the index of the first element to remove.
617
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
577
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
618
578
<td>the number of elements to remove.
622
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
623
<td>the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
582
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
583
<td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
628
<p class="since">Since 2.4
588
<p class="since">Since 2.4</p>
634
591
<div class="refsect2" lang="en">
635
<a name="id3373970"></a><h3>
636
<a name="g-array-sort"></a>g_array_sort ()</h3>
637
<a class="indexterm" name="id3373983"></a><pre class="programlisting">void g_array_sort (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
638
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc">GCompareFunc</a> compare_func);</pre>
592
<a name="g-array-sort"></a><h3>g_array_sort ()</h3>
593
<pre class="programlisting">void g_array_sort (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
594
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()">GCompareFunc</a> compare_func);</pre>
640
Sorts a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a> using <em class="parameter"><code>compare_func</code></em> which should be a <code class="function">qsort()</code>-style comparison
641
function (returns less than zero for first arg is less than second arg,
596
Sorts a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> using <em class="parameter"><code>compare_func</code></em> which should be a <code class="function">qsort()</code>-style comparison
597
function (returns less than zero for first arg is less than second arg,
642
598
zero for equal, greater zero if first arg is greater than second arg).
667
621
<div class="refsect2" lang="en">
668
<a name="id3374092"></a><h3>
669
<a name="g-array-sort-with-data"></a>g_array_sort_with_data ()</h3>
670
<a class="indexterm" name="id3374105"></a><pre class="programlisting">void g_array_sort_with_data (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
671
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc">GCompareDataFunc</a> compare_func,
672
<a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a> user_data);</pre>
622
<a name="g-array-sort-with-data"></a><h3>g_array_sort_with_data ()</h3>
623
<pre class="programlisting">void g_array_sort_with_data (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
624
<a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()">GCompareDataFunc</a> compare_func,
625
<a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer">gpointer</a> user_data);</pre>
674
Like <a class="link" href="glib-Arrays.html#g-array-sort"><code class="function">g_array_sort()</code></a>, but the comparison function receives an extra user data
627
Like <a class="link" href="glib-Arrays.html#g-array-sort" title="g_array_sort ()"><code class="function">g_array_sort()</code></a>, but the comparison function receives an extra user data
677
630
<div class="variablelist"><table border="0">
678
631
<col align="left" valign="top">
681
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
682
<td>a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
634
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
635
<td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
686
<td><p><span class="term"><em class="parameter"><code>compare_func</code></em> :</span></p></td>
639
<td><p><span class="term"><em class="parameter"><code>compare_func</code></em> :</span></p></td>
687
640
<td>comparison function.
691
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
644
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
692
645
<td>data to pass to <em class="parameter"><code>compare_func</code></em>.
751
697
<div class="refsect2" lang="en">
752
<a name="id3374357"></a><h3>
753
<a name="g-array-set-size"></a>g_array_set_size ()</h3>
754
<a class="indexterm" name="id3374370"></a><pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray">GArray</a>* g_array_set_size (<a class="link" href="glib-Arrays.html#GArray">GArray</a> *array,
755
<a class="link" href="glib-Basic-Types.html#guint">guint</a> length);</pre>
698
<a name="g-array-set-size"></a><h3>g_array_set_size ()</h3>
699
<pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>* g_array_set_size (<a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a> *array,
700
<a class="link" href="glib-Basic-Types.html#guint" title="guint">guint</a> length);</pre>
757
702
Sets the size of the array, expanding it if necessary.
758
If the array was created with <em class="parameter"><code>clear_</code></em> set to <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the new elements are set to 0.
703
If the array was created with <em class="parameter"><code>clear_</code></em> set to <a class="link" href="glib-Standard-Macros.html#TRUE--CAPS" title="TRUE"><code class="literal">TRUE</code></a>, the new elements are set to 0.
760
705
<div class="variablelist"><table border="0">
761
706
<col align="left" valign="top">
764
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
765
<td>a <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
769
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
770
<td>the new size of the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
774
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
775
<td>the <a class="link" href="glib-Arrays.html#GArray"><span class="type">GArray</span></a>.
709
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
710
<td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
714
<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
715
<td>the new size of the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.
719
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
720
<td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>.