Я выполняю итерацию через набор элементов внутри вектора структур и хочу изменить элемент в одной из структур. Когда я пишу элемент для изменения значения, обновление не сохраняется. Вот что у меня есть:Изменение элемента в векторе структур
первый, в заголовочном файле:
std::vector<Sched::ScheduledEvent_t> v_SchedEvents;
typedef std::vector<Sched::ScheduledEvent_t>::const_iterator event_iter;
затем в модуле .cpp ...
for (event_iter i = v_SchedEvents.begin(); i != v_SchedEvents.end(); ++i)
{
ScheduledEvent_t event = *i;
if(event.member == true) {
event.member = false;
}
}
Значение event.member для данного структура в векторе не остается ложной. При возврате в этот цикл условный оператор запускается снова.
Может ли это иметь какое-либо отношение к typedef для итератора?
Ссылка будет также решить проблема, но вы не объясняете, что вообще, так почему же упоминать об этом? –
С круглыми скобками: '(* i) .member = false;' –
Не согласен. Ни '* i.member = false;' ни '(* i) .member = false;' будет работать. –