隨筆1-小心自定義的比較運算子

這是發生在我打PTC的例子。

我自己定義<運算子,結果本地編譯器給過,但PC^2都是CE。
這是我CE的一小段程式碼

1
2
3
operator <(const node &b) const {
return w > b.w;
}

會CE的原因很簡單:我沒加上bool。
很多編譯器都會幫忙自動判斷為bool型態,所以不會判CE,如果不注意,就會在傳上去時吃數不清的CE。這種自定義<運算子通常出現在sort,priority_queue及map中,應該牢牢記得這一點。


如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Recommended Posts