Написание элементов std :: map через итерацию - PullRequest
3 голосов
/ 25 июля 2011

Я написал следующий код ...

  PagesMap::const_iterator end = pagesMap.end(); 
  for ( PagesMap::const_iterator it = pagesMap.begin(); it != end; ++it )
  {
    ....
    it->second = 0; // Here I get the error
    //pagesMap[it->first] = 0; 
  }

Теперь в строке, где у меня есть it->second = 0;, я получаю ...

Ошибка: назначение данныхчлен std :: pair :: second в структуре только для чтения

Если я использую закомментированный код ниже этой строки, это работает, но я думаю, что это неэффективно.Есть ли эффективный способ добиться этого?

1 Ответ

12 голосов
/ 25 июля 2011

Это потому, что вы используете const_iterator; попробуйте вместо этого iterator.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...