我想弄清楚google 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()..。尽管文档中没有这类内容。
我无法从提供的文档中找出,我也找不到例子.
我会感谢你的帮助。谢谢。
发布于 2014-09-08 15:21:03
假设它实现了一个与标准库一致的接口,那么您是否尝试过这样的方法:
int * state = it->first;
double ** action_value = it->second;您必须使用箭头,因为通常在取消迭代器时,您会得到容器元素的value_type,而对于关联容器,这通常是带有first和second成员的某种pair。
https://stackoverflow.com/questions/25725298
复制相似问题