在一個二叉搜索樹下面的代碼: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