gpt4 book ai didi

c++ - 错误 C2440 : 'initializing' : cannot convert from 'const int' to 'int *'

转载 作者:行者123 更新时间:2023-11-30 02:02:07 25 4
gpt4 key购买 nike

当我尝试运行这段代码时

template <typename Item, typename Key>
Item* BST<Item,Key>::search(const Key& key) const {
for (std::size_t i = 0; i < tree.size(); ++i) {
Item* ptr = NULL;
if(tree[i].data == key && tree[i].occupied == true) {
ptr = tree[i].data;
return ptr;
}
}
return ptr;
}

我最终遇到了标题中描述的错误。我曾多次尝试修复它,但无法弄清楚我做错了什么。对于一些背景信息,树是节点的 vector 。每个节点都有一个 bool 变量,说明它是否被占用,以及一个名为数据的项目变量。该函数应该使用给定的键在 vector 中搜索节点并返回指向它的数据的指针,但我终究无法弄明白。

最佳答案

看起来 tree[i].data 的类型是 const int 而不是 int*。代码应将其地址存储到 ptr 中,并可能返回 const Item*。更好的是,返回一个指向该节点的迭代器或返回序列末尾迭代器(如果未找到该节点)。

关于c++ - 错误 C2440 : 'initializing' : cannot convert from 'const int' to 'int *' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588227/

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