Имам въпрос относно комбинирането на карти, които имат вектори като раздел със стойност. например може да имам следното:
std::map<int, std::vector<Affector*> > affectors;
Искам да създам тази карта, като комбинирам множество по-малки карти. Например:
for (auto ch = chList.begin(); ch != chList.end(); ++ch)
{
std::map<int, std::vector<Affector*> > tempAff = ch->getemng()->getAffectorsInOrder();
std::map<int, std::vector<Affector*> > tempAff2 = ch->getpmng()->getAffectorsInOrder()
//I want to append both of these maps to the top level affectors map
}
Мога да се сетя за очевидното решение, което би било
for (auto ch = chList.begin(); ch != chList.end(); ++ch)
{
std::map<int, std::vector<Affector*> > tempAff = ch->getemng()->getAffectorsInOrder();
for (auto aff = tempAff.begin(); aff != tempAff.end(); ++aff)
{
affectors[aff->first].push_back(aff->second);
}
tempAff.clear();
tempAff = ch->getpmng()->getAffectorsInOrder();
for (auto aff = tempAff.begin(); aff != tempAff.end(); ++aff)
{
affectors[aff->first].push_back(aff->second);
}
...
}
Това ще свърши работа, но изглежда неефективно. Не мога да използвам операцията за вмъкване на картата, тъй като трябва да запазя съществуващите стойности във векторите. Има ли по-добър начин за комбиниране на картите, за който не мисля?
Благодаря