访问iterater对象值cplus plus

时间:2015-05-12 13:36:10

标签: c++ iterator breadth-first-search

我正在尝试在c ++中实现bfs。为了做到这一点,我创建了一个名为closedList的变量,它应该保留我已经访问过的状态。但是在调试中,当我尝试使用迭代器打印关闭列表中的状态时,它说。

cannot convert ‘std::deque<state_t, std::allocator<state_t>>::iterator* {aka std::_Deque_iterator<state_t, state_t&, state_t*>*}’ to ‘const state_t*’ for argument ‘2’ to ‘ssize_t print_state(FILE*, const state_t*)’    print_state(stdout, &it);

这是代码:

    for (std::deque<state_t>::iterator it=closedList.begin();it!=closedList.end();++it) {
    print_state(stdout, &it);       
        }

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

您正在解释您的迭代器

print_state(stdout, &it);

您可以使用*运算符

print_state(stdout, *it)

print_state

的签名来判断
print_state(FILE*, const state_t*)

它看起来应该是

print_state(stdout, &(*it))