在一个二叉搜索树下面的代码:C++“<”,不小于运算符?
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”,尽管这当然没有意义,但我还没有见过以前用过的“<”运算符。任何线索?
'<'是'小于':该行将一个布尔0或1赋给一个int,这大概是如果你打开警告会被标记? –
所有有条件的运算符都返回'0'或'1'。对于exmpl:'int a = 1 == 0;'将在'a'中赋值'0'。以同样的方式'int a = a == a;'将在'a'中赋值'1'。它适用于所有条件运算符 – shashwat