有人可以向我解释一下吗:
(((((*(parent))->leaves))[7])->zone_id)
指向指针的指针真的让我感到困惑。这是我在调试模式下从手表得到的表达式。我正在尝试访问zone_id
树的最后一个元素内的字符串(有 10 个元素,每个元素对应不同的数字 0-9)。
编辑:这是整个搜索功能,希望它足以理解:
string Tree::search(string str, node** parent, int num) {
int value;
if (num < str.length()) {
value = boost::lexical_cast<int> (str.substr(num, 1));
if ((*parent)->leaves[value] != NULL && num != str.length() -1) {
search (str, &((*parent)->leaves[value]), num+1);
} else if (num == str.length() -1) {
if ( (*(parent)->leaves)[value]->zone_id.empty() )
cout<<"Yep.";
else
return (string) "No_results.";
}
}
}
和结构:
struct node {
string zone_id;
node* leaves [10];
};