2015-01-08 9 views

答えて

16

例外を発生させるケースは、と非常に意味がある違いです。存在しないセットから要素を削除しようとすると、set.discard()ではなくset.remove()を使用することをお勧めします。

set_discard()

set_remove() functionと比較ことを除いて2つの方法が、実装において同一では、行を追加:

if (rv == DISCARD_NOTFOUND) { 
    set_key_error(key); 
    return NULL; 
} 

これはKeyErrorを上昇させます。これは若干多くの作業であるため、set.remove()と最も細いです。分数が遅くなります。あなたのCPUは戻ってくる前に1回余分なテストをしなければなりません。しかし、アルゴリズムが例外に依存する場合、追加の分岐テストはほとんど問題になりません。