我希望遍历我的哈希表中的每个键值对。因此我使用了 g_hash_table_foreach() 函数(原型如下所示)。对于每个键值对,它调用一个void func 方法。
void g_hash_table_foreach(GHashTable *hash_table,GHFunc func,
gpointer user_data);
但是,我要求对于函数的每次调用,该方法都返回一个值。
例如考虑以下代码:
void calculate(gpointer key, gpointer value, gpointer userdata)
{
return calculateNumbers(key, value);
}
int total = 0;
g_hash_table_foreach(mymap, calculate, NULL);
我要求变量 total 存储calculate() 函数接收到的每个返回值的总和。我发现使用 g_hash_table_foreach 方法很难做到这一点。
我宁愿有一个while循环,在外面声明总变量,并在每对的每次迭代中增加它的值。但是,我认为 glib 不允许我一次考虑一个键值对。(与具有下一个属性的 GList 不同)请问我该怎么做?