私はリストにイテレータを格納しています:私のアルゴリズムで妥当性::前とstd ::次のstd ::リスト
list<int> l;
l.push_back(21); l.push_back(1); l.push_back(31); l.push_back(41);
auto it = l.find(21);
、私はノードを削除するたびに、私は追加する必要があります隣接要素。このようなもの:
auto prev = std::prev(it);
auto next = std::next(it);
*prev = *prev + *next;
l.erase(it);
ご覧のとおり、すべての境界条件を保証する必要があります。 std::prev()
とstd::next()
の値は次の場合に返されます。
- これらは最初と最後の要素です。
- または
it
そのものがある時点で無効になった場合は、std::prev()
とstd::next()
リターンを何値