2

次のコードでは:

typedef bimap< set_of< std::string >, list_of< int > > bm_type;
bm_type bm;

bm.left["one"] = 1; // "one" -> 1
bm.left["one"] = 2; // replaced: "one" -> 2
bm.right[2] = "two"; // Compile error

コンパイルエラーを取り除くにはどうすればよいですか? で正しいビューにアクセスすることはできませんoperator[]か?

4

2 に答える 2

2

list_ofはありませんoperator[]

http://www.boost.org/doc/libs/1_47_0/libs/bimap/doc/html/boost_bimap/reference/list_of_reference.htmlを見てください。

于 2012-12-10T10:49:24.593 に答える
1

このコードはまったく意味がありません。要素が作成された場合、要素を挿入する場所を選択する必要があるため、リストにはありません。operator[]リストは (マップのように) 内部でソートされていないため、a2はリストの先頭、リストの末尾、リストの中央、またはその他の場所に配置できます。

(Boostlist_ofは標準のセマンティクスを模倣していますlist。)

于 2012-12-10T10:49:21.910 に答える