簡體   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