我认为标题说明了我的大部分问题。
我是C的新手,我正在寻找使用arraylist库的最简单方法 在我的一个可执行文件中。
我有一种特殊类型的结构,我希望将其“提供”到列表中,然后能够轻松地添加,删除,迭代和访问我的所有元素。
我看了一下这个网站:
http://www.koders.com/c/fid4E4658B6DA7F7E9C331AC8D267BF5D9D6E5577C3.aspx
我从中复制并编译了我的程序,但无法弄清楚如何初始化arraylist。
因此,如果您还可以附上一个如何使用它的非常简单的示例,我也会非常感激。
提前谢谢大家。
答案 0 :(得分:2)
arraylist_create
的参数是指向a的函数指针
比较函数将2 Object
s(通用指针)作为参数并返回
a Boolean
表示参数是否被认为是相同的。
需要此功能,例如用于查找列表中的某个元素(arraylist_contains
)。
它沿着这一行(缺少错误处理):
#include "arraylist.h"
typedef int the_type;
const Boolean compare_function(const Object a, const Object b)
{
return *(the_type*)a == *(the_type*)b;
}
int main(void)
{
Arraylist the_list;
int x = 42, y = 23, z = 3, i;
the_list = arraylist_create(compare_function);
arraylist_add(the_list, &x);
arraylist_add(the_list, &y);
arraylist_add(the_list, &z);
for (i = 0; i < arraylist_size(the_list); ++i) {
/* the printf works just because the_type == int */
printf("%i: %i\n", i, *(the_type*)arraylist_get(the_list, i));
}
arraylist_clear(the_list);
arraylist_free(the_list);
return 0;
}