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()刪除數組,釋放內存空間。
 

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