У меня есть карта map<set,vector> m1
.Он имеет следующие значения:
< <1>,<2,4> >
< <2>,<6,2> >
< <3>,<3,4> >
< <4>,<6,1> >
< <5>,<1,1> >
Теперь мне нужно найти максимальные значения в каждом столбце вектора, и я легко это делаю, перебирая все строки и сохраняя его в векторе, скажем v1
as <6,4>
.
Теперь проблема в том, что я хочу найти все пары, которые составляют это значение.Думайте об этом как о возможных комбинациях, которые могут дать <6,4>
на карте.т.е. мой результат также должен быть картой, которая выглядит примерно так:
< <1,2>,<6,4> >
< <2,3>,<6,4> >
< <1,4>,<6,4> >
< <3,4>,<6,4> >
РЕДАКТИРОВАТЬ:
Чтобы объяснить больше, пусть набор в карте действует какid
соответствующего вектора.Теперь, что все векторы в этой карте, «объединенные», могут дать <6,4>?Обратите внимание, что агрегатная функция здесь max
.т. е. для векторов <2,4>
и <6,2>
максимальное значение между ними равно <6,4>
, поэтому идентификаторы (1 и 2) и (2 и 3) и т. д. могут дать мне <6,4>.
То, что я пытался сделать, это перебирать каждый столбец вектора в m1 и сохранять соответствующие значения set
всякий раз, когда я нахожу 6
, в этом примере < <2> <6,2> >
и < <4>,<6,1> >
, и делать то же самое для второгоколонка.Теперь я не знаю, как интегрировать его, чтобы получить мой результат.