c++代码中添加元素的问题
来源:10-2 Trie字典树基础

我是笨笨蛋
2020-01-31
老师好,这是完整的代码。
void add(std::string word) {
Node *cur = root;
for (int i = 0; i < word.size(); ++i) {
char c = word.at(i);
if (cur->next.find(c) == cur->next.end()) {
cur->next.insert(std::pair<char, Node>(c, Node()));
}
cur = &cur->next.find(c)->second;
}
if (!cur->isWord) {
cur->isWord = true;
size++;
}
}
我不理解这段代码的意思是什么? cur = &cur->next.find(c)->second;
写回答
1回答
-
liuyubobobo
2020-01-31
这不是我的代码。这个课程没有提供 C++ 的官方代码。
不过我可以试着理解一下。
cur->next.find(c)->second 应该是一个 Node 类型。但是因为 cur 是 Node* 类型,即一个指针。所以,给 cur 赋值的时候,需要使用地址,即在取到的 Node 类型前加 &,表示取地址。
继续加油!:)
052020-01-31
相似问题