01:38

Я не буду прилагать слишком много усилий к тому, чтобы вам понравиться, не нравлюсь - вы мои враги на следующие 2 часа.
Здравствуйте. Имею проблемы с задачей на С++. Конкретно - с классом map библиотеки STL.

Задача такая: читать дальше



собственно, с теми проблемами разобрался, но теперь появилась проблема чисто кодового характера.
for(map::iterator iter=table2.begin(); iter!=table.end();)
{
if (((*iter).first.num)==number) iter=table2.erase(iter); *здесь необходимо сперва вставить этот элемент в table3, а затем удалить из table2*
else {cout<<(*iter).first.num<<"\t"<<(*iter).first.name<<"\t"<<(*iter).first.marsh<<"\n"; iter++;}
}
Излазил всё, но не могу найти варианта, чтобы вставить объект с позиции итератора. Т.е. находил что-то типа table3.insert(iter, что-то непонятное). Но вот как именно в этом случает в цикле вставить этот объект?

Запоролся на этом, двинуться дальше не могу, хотя задача в принципе решена. Помогите, пожалуйста!
Заранее спасибо.

Комментарии
16.11.2009 в 07:09

Don't stop the music.
Jaxter Z Vargas
Не уверен, но по-моему вы неправильно заносите элемент в таблицу. Элемент должен быть вида (ключ, значение) у вас получается только (значение). Как сделать корректное заполнение - не знаю, советую почитать про map (что это и как это использовать). Думаю, что должно быть что-то в виде: table.insert(tempBus.num, tempBus).
16.11.2009 в 15:55

Я не буду прилагать слишком много усилий к тому, чтобы вам понравиться, не нравлюсь - вы мои враги на следующие 2 часа.
Слушатель написал по-другому: table.insert(make_pair(tempBus.num, tempBus))
вроде ошибка пропала. А вот со второй не знаю, что делать.(
16.11.2009 в 20:03

Don't stop the music.
Jaxter Z Vargas
Итератор it взял пару (busNum, tempBus), поэтому поле printBus он не видит, потому что это поле tempBus, а не поле пары. Нужно доступиться до tempBus через it.
19.11.2009 в 01:43

Я не буду прилагать слишком много усилий к тому, чтобы вам понравиться, не нравлюсь - вы мои враги на следующие 2 часа.
Слушатель оказывается, надо было поменять местами . Ну и вывод изменил на (*it).first.num.
Вроде всё работает, но теперь проблема, чтобы вставить объект в этот словарь с позиции итератора из цикла.