acl  3.5.3.0
acl_array.h 文件参考
#include "acl_define.h"
#include "acl_dbuf_pool.h"
#include "acl_iterator.h"
+ acl_array.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  ACL_ARRAY
 

宏定义

#define acl_array_destroy   acl_array_free
 
#define acl_array_insert   acl_array_succ_insert
 

类型定义

typedef struct ACL_ARRAY ACL_ARRAY
 

函数

ACL_API ACL_ARRAYacl_array_create (int init_size)
 
ACL_API ACL_ARRAYacl_array_dbuf_create (int init_size, ACL_DBUF_POOL *dbuf)
 
ACL_API void acl_array_clean (ACL_ARRAY *a, void(*free_fn)(void *))
 
ACL_API void acl_array_free (ACL_ARRAY *a, void(*free_fn)(void *))
 
ACL_API int acl_array_append (ACL_ARRAY *a, void *obj)
 
ACL_API int acl_array_prepend (ACL_ARRAY *a, void *obj)
 
ACL_API int acl_array_pred_insert (ACL_ARRAY *a, int position, void *obj)
 
ACL_API int acl_array_succ_insert (ACL_ARRAY *a, int position, void *obj)
 
ACL_API int acl_array_delete_idx (ACL_ARRAY *a, int position, void(*free_fn)(void *))
 
ACL_API int acl_array_delete (ACL_ARRAY *a, int position, void(*free_fn)(void *))
 
ACL_API int acl_array_delete_obj (ACL_ARRAY *a, void *obj, void(*free_fn)(void *))
 
ACL_API int acl_array_delete_range (ACL_ARRAY *a, int ibegin, int iend, void(*free_fn)(void *))
 
ACL_API int acl_array_mv_idx (ACL_ARRAY *a, int ito, int ifrom, void(*free_fn)(void *))
 
ACL_API void acl_array_pre_append (ACL_ARRAY *a, int app_count)
 
ACL_API void * acl_array_index (const ACL_ARRAY *a, int idx)
 
ACL_API int acl_array_size (const ACL_ARRAY *a)
 

宏定义说明

◆ acl_array_destroy

#define acl_array_destroy   acl_array_free

在文件 acl_array.h74 行定义.

◆ acl_array_insert

#define acl_array_insert   acl_array_succ_insert

在文件 acl_array.h109 行定义.

类型定义说明

◆ ACL_ARRAY

typedef struct ACL_ARRAY ACL_ARRAY

动态数组类型定义

在文件 acl_array.h15 行定义.

函数说明

◆ acl_array_append()

ACL_API int acl_array_append ( ACL_ARRAY a,
void *  obj 
)

向动态数组尾部添加动态成员变量

参数
a{ACL_ARRAY*} 动态数组指针
obj{void*} 动态成员变量
返回
{int} >=0: 成功, 返回值为该元素在数组中的下标位置;-1: 失败

◆ acl_array_clean()

ACL_API void acl_array_clean ( ACL_ARRAY a,
void(*)(void *)  free_fn 
)

释放掉动态数组内的成员变量,但并不释放动态数组对象

参数
a{ACL_ARRAY*} 动态数组指针
free_fn{void (*)(void*)} 用于释放动态数组内成员变量的释放函数指针

◆ acl_array_create()

ACL_API ACL_ARRAY* acl_array_create ( int  init_size)

创建一个动态数组

参数
init_size{int} 动态数组的初始大小
返回
{ACL_ARRAY*} 动态数组指针

◆ acl_array_dbuf_create()

ACL_API ACL_ARRAY* acl_array_dbuf_create ( int  init_size,
ACL_DBUF_POOL dbuf 
)

创建一个动态数组

参数
init_size{int} 动态数组的初始大小
dbuf{ACL_DBUF_POOL*} 非空时, 则内存(含数组对象本身)均在上面分配
返回
{ACL_ARRAY*} 动态数组指针

◆ acl_array_delete()

ACL_API int acl_array_delete ( ACL_ARRAY a,
int  position,
void(*)(void *)  free_fn 
)

从动态数组中的指定位置删除某个对象,删除后数组内元素的先后顺序有可能发生了改变, 因为删除后会自动将数组中最后的元素移至该位置处

参数
a{ACL_ARRAY*} 动态数组指针
position{int} 某个位置,不得越界
free_fn{void (*)(void*)} 用于释放动态数组内成员变量的释放函数指针,如果该 指针为空,则不释放,否则用此函数进行释放动态对象
返回
{int} 0: 成功;-1: 失败

◆ acl_array_delete_idx()

ACL_API int acl_array_delete_idx ( ACL_ARRAY a,
int  position,
void(*)(void *)  free_fn 
)

从动态数组中的指定位置删除某个动态对象, 删除后数组内元素的先后顺序保持不变, 如果被删除位置在中间某个位置,为了保证元素的顺序性,内部将被删除元素后的所有元素 都前移一个位置

参数
a{ACL_ARRAY*} 动态数组指针
position{int} 某个位置,不得越界
free_fn{void (*)(void*)} 用于释放动态数组内成员变量的释放函数指针,如果该 指针为空,则不释放,否则用此函数进行释放动态对象
返回
{int} 0: 成功;-1: 失败

◆ acl_array_delete_obj()

ACL_API int acl_array_delete_obj ( ACL_ARRAY a,
void *  obj,
void(*)(void *)  free_fn 
)

从动态数组中删除指定指针地址的动态对象, 删除后数组内元素的先后顺序保持不变 如果被删除位置在中间某个位置,为了保证元素的顺序性内部,将被删除元素后的所有元素 都前移一个位置

参数
a{ACL_ARRAY*} 动态数组指针
obj{void*} 动态对象指针地址
free_fn{void (*)(void*)} 用于释放动态数组内成员变量的释放函数指针,如果该 指针为空,则不释放,否则用此函数进行释放动态对象
返回
{int} 0: 成功;-1: 失败

◆ acl_array_delete_range()

ACL_API int acl_array_delete_range ( ACL_ARRAY a,
int  ibegin,
int  iend,
void(*)(void *)  free_fn 
)

从动态数组中删除某个下标范围的动态对象

参数
a{ACL_ARRAY*} 动态数组指针
ibegin{int} 开始下标位置
iend{int} 结束下标位置
free_fn{void (*)(void*)} 用于释放动态数组内成员变量的释放函数指针,如果该 指针为空,则不释放,否则用此函数进行释放动态对象
返回
{int} 0: 成功;-1: 失败

◆ acl_array_free()

ACL_API void acl_array_free ( ACL_ARRAY a,
void(*)(void *)  free_fn 
)

释放掉动态数组内的成员变量,并释放动态数组对象,当数组对象创建 dbuf 对象 时,则该数组对象的释放将会在释放 dbuf 时被释放

参数
a{ACL_ARRAY*} 动态数组指针
free_fn{void (*)(void*)} 用于释放动态数组内成员变量的释放函数指针

◆ acl_array_index()

ACL_API void* acl_array_index ( const ACL_ARRAY a,
int  idx 
)

从动态数组中的某个下标位置取出动态对象

参数
a{ACL_ARRAY*} 动态数组指针
idx{int} 下标位置,不能越界,否则返回-1
返回
{void*} != NULL: 成功;== NULL: 不存在或失败

◆ acl_array_mv_idx()

ACL_API int acl_array_mv_idx ( ACL_ARRAY a,
int  ito,
int  ifrom,
void(*)(void *)  free_fn 
)

移动动态数组中的对象

参数
a{ACL_ARRAY*} 动态数组指针
ito{int} 移动至目标下标位置
ifrom{int} 从此下标位置开始移动
free_fn{void (*)(void*)} 用于释放动态数组内成员变量的释放函数指针,如果该 指针为空,则不释放,否则用此函数进行释放动态对象被释放的动态对象区间为 [idx_obj_begin, idx_src_begin), 为一半开半闭区间
返回
{int} 0: 成功;-1: 失败

◆ acl_array_pre_append()

ACL_API void acl_array_pre_append ( ACL_ARRAY a,
int  app_count 
)

预先保证动态数组的空间长度

参数
a{ACL_ARRAY*} 动态数组指针
app_count{int} 需要动态数组至少有 app_count 个空闲位置

◆ acl_array_pred_insert()

ACL_API int acl_array_pred_insert ( ACL_ARRAY a,
int  position,
void *  obj 
)

向动态数组中指定位置前添加动态成员变量(该结点及以后所有结点都后移一个位置)

参数
a{ACL_ARRAY*} 动态数组指针
position{int} 某个位置,不得越界
obj{void*} 动态成员变量
返回
{int} 0: 成功;-1: 失败

◆ acl_array_prepend()

ACL_API int acl_array_prepend ( ACL_ARRAY a,
void *  obj 
)

向动态数组头部添加动态成员变量

参数
a{ACL_ARRAY*} 动态数组指针
obj{void*} 动态成员变量
返回
{int} >=0: 成功, 返回值为该元素在数组中的下标位置;-1: 失败

◆ acl_array_size()

ACL_API int acl_array_size ( const ACL_ARRAY a)

获得当前动态数组中动态对象的个数

参数
a{ACL_ARRAY*} 动态数组指针
返回
{int} 动态数组中动态对象的个数

◆ acl_array_succ_insert()

ACL_API int acl_array_succ_insert ( ACL_ARRAY a,
int  position,
void *  obj 
)

向动态数组中指定位置后添加动态成员变量(该结点以后所有结点都后移一个位置)

参数
a{ACL_ARRAY*} 动态数组指针
position{int} 某个位置,不得越界
obj{void*} 动态成员变量
返回
{int} 0: 成功;-1: 失败