On Sat, Oct 31, 2015 at 07:10:20AM +0000, Andrea Zagli wrote: > Il giorno ven 30 ott 2015 19:09:47 CET, Emmanuele Bassi ha scritto: > >Hi; > > > >On 30 October 2015 at 16:43, Andrea Zagli <aza...@libero.it> wrote: > >>is there a data type, similar to array, that preserve the order on which > >>elements are inserted? > > > >All the array and list types preserve the order of insertion. For > >obvious reasons, GHashTable doesn't. > > > >>for example ghashtable and gptrarray doesn't preserve the order, so when > >>they are traversed (for example with a "for" cicle, regarding gptrarray) the > >>order may be not the same when elements are inserted > > > >GPtrArray preserves the order of insertion — it's an array, after all. > >Why do you think it does not? > > > > it is written on the help > > https://developer.gnome.org/glib/stable/glib-Pointer-Arrays.html > > "If you remove elements from the array, elements at the end of the > array are moved into the space previously occupied by the removed > element. This means that you should not rely on the index of > particular elements remaining the same." > > > may be also other data type makes the same thing? i didn't find > reference about that
It depends on how elements are removed from the array, there are two ways to do it. If you use g_ptr_array_remove then the following elements are moved down once place and the order is preserved. However if you instead use g_ptr_array_remove_fast then the last element is moved to fill the void. GArray offers the same two methods as well. Marcus _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list