誰かが私にこれを説明できますか:
(((((*(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];
};