Всем привет!
Простой вопрос, но чтото туплю под вечер...
Есть:
std::map<unsigned int, std::map<unsigned int, std::vector<unsigned char> > > m; // кароче мап мапов у которого values это векторы...
вся фищка в том что не удается модифицировать значения вектора во втором мапе... т.е.
// псевдо
// it1 и it2 итераторы
... it1 = m.find(1);
if (it1 != m.end())
{
... it2 = (*it1).second.find(2);
if (it2 != (*it1).second.end())
{
// нашли что надо
// модифицируем
std::vector<unsigned char> v; // тут чтото будет в v, которое надо скопировать в вектор который во втором мапе
...
(*it2).second.swap(v); (1)
// или
std::copy(v.begin(), v.end(), (*it2).second.begin()); (2)
}
}
не работает почему та...
Где-то вектор скопировался. В коде вместо std::vector<unsigned int> v = *it2; надо std::vector<unsigned int> &v = *it2;
Здравствуйте, Аноним, Вы писали:
А>Всем привет!
А>не работает почему та...