Вопрос перефразирован -
У меня есть требование заменить пару новым ключом и значением. Подумайте об этом -
Код: Выделить всё
#include
#include
#include
using namespace std;
int main()
{
std::multimap mymap;
mymap.insert(std::multimap::value_type(0, "A1"));
mymap.insert(std::multimap::value_type(0, "A2"));
mymap.insert(std::multimap::value_type(2, "C1"));
mymap.insert(std::multimap::value_type(2, "C2"));
mymap.insert(std::multimap::value_type(1, "B1"));
mymap.insert(std::multimap::value_type(1, "B2"));
mymap.insert(std::multimap::value_type(1, "B3"));
std::pair pr = mymap.equal_range(1);
std::multimap::iterator it;
for (it=pr.first; it!=pr.second; ++it)
{
unsigned int key = it->first;
key = key+10;
std::string val = it->second;
val = "X" + val;
mymap.erase(it);
mymap.insert(std::multimap::value_type(key, val));
}
for ( it=mymap.begin() ; it != mymap.end(); it++ )
{
cout C1
2 => C2
11 => XB1
11 => XB2
11 => XB3
Что я делаю не так? Любая помощь очень ценится.
Подробнее здесь: https://stackoverflow.com/questions/113 ... d-multimap