Erasing an element from a container while inside a range-based for loop

前端 未结 1 1033
故里飘歌
故里飘歌 2020-12-10 05:22

I want to erase an element from a container which is being currently used within a ranged-based for loop. Will this cause undefined behaviour? Or will the next value of

1条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-10 06:02

    It should be a undefined behavior. Because according to 14882/2011 the range-based for statement is equivalent to:

    auto && __range = range-init;
    for ( auto __begin = begin-expr(__range),
       __end = end-expr(__range);
       __begin != __end;
       ++__begin ) {
       for-range-declaration = *__begin;
       statement
    }
    

    0 讨论(0)
提交回复
热议问题