在以下代码中:
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[]
?
list_of
没有operator[]
。
这段代码没有任何意义。列表没有,operator[]
因为如果创建元素,您必须选择插入元素的位置。由于列表不是内部排序的(就像地图一样),所以 a2
可以位于列表的开头、列表的结尾、列表的中间或其他任何地方。
(Boostlist_of
模仿标准的语义list
。)