例如我们有地图
map<char,int>mymap;
mymap['a']=101;
mymap['c']=45;
mymap['b']=76;
mymap['d']=98;
我知道如果我们遍历地图,它将按照以下方式打印元素
a>=101;
b>=76;
c>=45;
d>=98;
小键如何引用小值?或
a-45
b-76
c-98
d-101
? 感谢
答案 0 :(得分:3)
如果我正确理解你,你根本不想永久地关联值,你想要订购两组不同的值,然后在某些时候将它们排成一行。在这种情况下,请不要使用std :: map。您需要两个不同的std :: set(如果您想允许重复值,则为multiset),它们分别对值进行排序。然后在某个时刻迭代两个。
答案 1 :(得分:0)
你必须自己做,地图不会迭代这样的值。一种选择是使用第二个映射,其中交换键和值(如果您可以有重复值,请使用多图)。
答案 2 :(得分:0)
你应该尝试使用boost multi-index,比使用两组/ map和大致相同的速度更少的开销。