изменить элемент с помощью итератора

У меня проблема, когда я хочу изменить элемент набора с помощью итератора. Этот простой код может объяснить, что я хочу делать.

  set<int> s;
  s.insert(12);

  set<int>::iterator it = s.begin();
  *it = 4; // error C3892: 'it' : you cannot assign to a variable that is const

Почему я не могу изменить значение, на которое указывает обычный итератор, а не const_iterator?

В моем коде итератор возвращался функцией set :: find (). Может быть, это лучший способ выбрать конкретный элемент из набора и изменить его.

12
задан Scypi 25 December 2011 в 01:09
поделиться