0

機能のブーストグラフマニュアルよりremove_vertex

頂点uが削除されたとき、頂点uとの間のエッジはないと想定されます。これを確認する1つの方法は、事前にclear_vertex()を呼び出すことです。

remove_vertex()他の頂点に接続されている頂点を呼び出すとどうなりますか?それは未定義の動作につながりますか?

マニュアルの引用から、何か悪いことが起こるように思われるでしょう。もしそうなら、なぜこのように呼び出されたときに例外をスローしないのですか?

4

1 に答える 1

0

一部のアルゴリズムとユーティリティは別として、Boost Graph Libraryは一般に、特にグラフの構造にアクセスまたは変更するときに例外をスローしません。この決定は、パフォーマンス上の理由から行われたと思います。

このAPIモデルをSTLと比較します。STLでは、前提条件に違反すると、例外をスローするのではなく、未定義の動作が発生します。

于 2013-11-26T08:05:01.397 に答える