map+vector
От: Аноним  
Дата: 23.08.11 21:48
Оценка:
Всем привет!

Простой вопрос, но чтото туплю под вечер...

Есть:


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)
  }
}


не работает почему та...
Re: map+vector
От: Centaur Россия  
Дата: 24.08.11 07:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>не работает почему та...


Текст ошибки-то покажи.
Re: map+vector
От: swingus  
Дата: 24.08.11 07:10
Оценка: 1 (1)
Где-то вектор скопировался. В коде вместо std::vector<unsigned int> v = *it2; надо std::vector<unsigned int> &v = *it2;

Здравствуйте, Аноним, Вы писали:

А>Всем привет!


А>не работает почему та...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.