Sparse_hash_map iteration

Sparse_hash_map iteration

本文关键字:iteration map hash Sparse      更新时间:2023-10-16

我正试图弄清楚谷歌sparse_hash_map是如何工作的。我已经正确地完成了声明并填充它。但是,我在迭代和显示地图时遇到了问题。我想打印这些对,以检查计算是否正确。我的声明是:

sparse_hash_map<int*, double **, hash<int*>, eqstr> q_table;

我正在尝试作为在for循环上进行迭代

for(sparse_hash_map<int*, double **, hash<int*>, eqstr>::iterator it = q_table.begin(); it != q_table.end(); ++it) 

我试过做int* key = it[0],但不起作用,int* key = it.first也不起作用。甚至尝试过int* key = it.key()。。。尽管文档中没有此类内容。

我无法从提供的文档中找到答案,也找不到示例。。。

我们将不胜感激。非常感谢。

假设它实现了一个与标准库一致的接口,你有没有尝试过这样的东西:

int * state = it->first;
double ** action_value = it->second;

您必须使用箭头,因为通常当您取消引用迭代器时,您会得到容器元素的value_type,而对于关联容器,这通常是具有firstsecond成员的某种pair