5

次の簡単なアプリをコンパイルできないのはなぜですか。listSをvecSに変更すると、すべてが正常に機能します。(私はブースト1.46.1とgcc 4.4.5を使用しています)

#include <iostream>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/graphviz.hpp>

int main(int argc, const char *argv[]) {
    boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS > g;

    boost::write_graphviz(std::cout, g);

    return 0;
}
4

1 に答える 1

6

write_graphvizvertex_id頂点識別子ラベルを表示するためのプロパティが必要です。adjacency_list頂点コンテナとして使用するは、このプロパティlistSを自動的に提供しません。vertex_idリンクリストには、要素を一意に識別するために使用できるキーやインデックスなどがないため、この動作は理にかなっています。リンクリストはランダムアクセスシーケンスでも連想コンテナでもないことに注意してください。

独自のvertex_idプロパティゲッターを提供するか、固有のプロパティを持つ頂点コンテナを使用する必要がありvertex_idます。

于 2011-04-26T18:45:37.927 に答える