如果這樣定義集合set:
set<int,less_equal<int> >s;
s.insert(10);
s.insert(10);
由于會(huì)調(diào)用比較函數(shù)operator<=,set會(huì)檢查下面的表達(dá)式是否為真,判斷新插入的元素是否已經(jīng)在集合中:
!(10<=10) && !(10<=10)
結(jié)果是false,即set會(huì)認(rèn)為10不在set中,這樣set中會(huì)有重復(fù)的元素。
但是我測(cè)試時(shí),用vs2005會(huì)有運(yùn)行時(shí)錯(cuò)誤。
不管怎么樣,這樣是不對(duì)的。