glib库数组GArray

原文链接:https://blog.csdn.net/plusboy/article/details/1491508

我们用函数g_array_new()创建一个数组,它有三个参数:第一个表示是否在数组的尾部添加'/0'结束符;
第二个表示当分配空间给数组元素时是否要把它初始化为‘0’;第三个表示数组里每个元素的长度。

我们用g_array_append_val()向数组中加入数据,这个函数有点像vector容器的push_back()函数,它向数组
的尾部添加数据,如果内存空间不够就自动分配内存。因为g_array_append_val()是一个使用引用的宏,
所以你不能像g_array_append_val(array, 3)这样调用,你必须先把3赋值给一个变量val,然后像
g_array_append_val(array, val)这样调用。

然后用一个display_array()函数打印数组中的元素,这个函数里用到了g_array_index()函数按索引取数组
中的元素,g_array_index()也有三个参数,第一个是要访问的数组,第二个是数组中的数据类型,第三个
是要访问的数组元素的索引。

g_array_append_vals()函数像g_array_append_val()函数一样,向数组尾部添加元素,只是g_array_append_vals()
一次可以添加多个元素。

g_array_prepend_vals()类似于g_array_append_vals(),只是添加的元素位于数组首部。

g_array_insert_val()函数向数组中指定位置插入元素,后面元素按顺序后移。

g_array_remove_index()函数删除数组中指定位置的元素,后面的元素按顺序前移。

g_array_remove_index_fast()函数删除数组中指定位置的元素,数组中的最后一个元素移到该位置,实际上
就是用最后一个元素的值赋给指定元素,然后删除除最后一个元素。所以该函数会改变数组的顺序。

最后不要忘了用g_array_free()删除数组,释放内存空间。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章