繁体   English   中英

错误C2440:'初始化':无法从'const int'转换为'int *'

[英]error C2440: 'initializing' : cannot convert from 'const int' to 'int *'

当我尝试运行此代码时

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;
}

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

看起来tree[i].data的类型tree[i].dataconst int而不是int* 代码应将其地址存储到ptr并可能返回const Item* 更好的是,如果找不到节点,则返回指向节点的迭代器或序列结束迭代器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM