首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Trie*&和Trie**是相同的意思吗?

Trie*&和Trie**是相同的意思吗?
EN

Stack Overflow用户
提问于 2020-02-08 13:36:32
回答 2查看 50关注 0票数 0
代码语言:javascript
复制
class Trie
{
public:
    bool isLeaf;
    Trie* character[CHAR_SIZE];

    // Constructor
    Trie()
    {
        this->isLeaf = false;

        for (int i = 0; i < CHAR_SIZE; i++)
            this->character[i] = nullptr;
    }

    void insert(std::string);
    bool deletion(Trie*&, std::string);
    bool search(std::string);
    bool haveChildren(Trie const*);
};

在这里,Trie*&和Trie**的意思是一样的吗?

EN

回答 2

Stack Overflow用户

发布于 2020-08-15 05:43:01

不,它们是不一样的。Trie*&是指向(Trie-)指针的引用,Trie**是指向(Trie-)指针的指针。为了说明不同之处,请考虑以下内容:

代码语言:javascript
复制
void test_a(int*& refToPtr)
{
    refToPtr = new int();
    *refToPtr = 123;
}

要使用int**实现相同的功能,您的函数将如下所示:

代码语言:javascript
复制
void test_b(int** ptrToPtr)
{
    *ptrToPtr = new int();
    **ptrToPtr = 123;
}

需要记住的一个区别是,您可以在本地更改ptrToPtr (这样您就可以更改ptrToPtr指向的指针变量)。使用refToPtr作为引用,不可能在本地更改refToPtr引用的指针变量。

票数 1
EN

Stack Overflow用户

发布于 2020-08-15 04:01:46

不,它们是不一样的。

这里的

*&和Trie**的意思是一样的吗?

  • Trie*&:是对pointer.
  • Trie**:的引用,是指向指针的指针。

有关更多信息,您可以查看

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60124234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档