在下面的代码:提升:使用访问bimap的operator []的
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[]
访问正确的视图?
什么是你希望这个做什么? –
@DavidSchwartz我正在尝试像普通的std :: map一样使用bimap。我所有的键和值都是唯一的。我需要能够通过值获取/设置键,反之亦然。 (并且我不确定使用'list_of') – Meysam
但是一张地图只有一个给定元素可以去的地方。我真的不明白你期望这样做。你能否准确地描述一下'bm.right [2]'应该做什么?例如,如果列表中没有'2',是否应该添加?如果是这样,*哪里*? –