構造体のベクトル内の一連の要素を反復処理しており、構造体の 1 つの要素を変更したいと考えています。値を変更するために要素に書き込むと、更新が保持されません。ここに私が持っているものがあります:
まず、ヘッダーファイルで:
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 の値が false のままではありません。このループに戻ると、条件ステートメントが再度実行されます。
イテレータの typedef と何か関係があるのでしょうか?