二分探索木の次のコードでは、次のようになります。
template <class TKey>
class bst<TKey>::node *bst<TKey>::insert(node *T, TKey &key)
{
if (T == NULL) {
T = new node;
T->key = key;
} else if (T->key == key) {
cout << "key " << key << " already in tree" << endl;
} else {
int dir = T->key < key;
T->link[dir] = insert(T->link[dir], key);
}
return T;
}
何の線か迷った
int dir = T->key < key;
やっています。「int dir = T->key」は理解できましたが、もちろん意味がありませんが、「<」演算子がそのように使用されているのを見たことがありません。手がかりはありますか?