gpt4 book ai didi

c++ - 访问迭代器对象值 cplusplus

转载 作者:行者123 更新时间:2023-11-27 22:58:26 25 4
gpt4 key购买 nike

我正在尝试用 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);
}

非常感谢任何帮助。

最佳答案

你不正确地取消引用你的迭代器

print_state(stdout, &it);

您将使用 * 运算符

print_state(stdout, *it)

并且通过print_state的签名判断

print_state(FILE*, const state_t*)

看起来应该是这样

print_state(stdout, &(*it))

关于c++ - 访问迭代器对象值 cplusplus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30192542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com