Trie*& 和 Trie** 的意思是 Same?

does Trie*& and Trie** means Same?

本文关键字:Trie Same 意思是      更新时间:2023-10-16
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**的意思是相同的吗?

不,它们不一样。Trie*&是对 (Trie-( 指针的引用,Trie**是指向 (Trie-( 指针的指针。为了说明差异,请考虑以下情况:

void test_a(int*& refToPtr)
{
refToPtr = new int();
*refToPtr = 123;
}

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

void test_b(int** ptrToPtr)
{
*ptrToPtr = new int();
**ptrToPtr = 123;
}

要记住的一个区别是,您可以在本地更改ptrToPtr(因此您可以将点更改为哪个指针变量ptrToPtr点(。由于refToPtr是引用,因此无法局部更改refToPtr引用的指针变量。

不,它们不一样。

在这里,Trie*&和Trie**的意思是相同的吗?

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

欲了解更多信息,您可以查看

  • C++中指针变量和引用变量有什么区别?

  • tutorialspoint.com 教程