ホームページ > バックエンド開発 > C++ > C で逆反復子を使用してリストから要素を消去する方法

C で逆反復子を使用してリストから要素を消去する方法

Barbara Streisand
リリース: 2024-11-30 06:16:10
オリジナル
525 人が閲覧しました

How to Erase Elements from a List Using Reverse Iterators in C  ?

リストから消去するための逆反復子の変換

消去操作を使用してリストから要素を削除するには、通常の反復子が必要です。ただし、逆反復子を使用する場合は、変換が必要です。

標準では、逆反復子 (i) とそれに対応する通常の反復子 (i.base()) の間の関係が定義されています:

& *reverse_iterator(i) == &*(i - 1)

この関係により、逆反復子を通常の反復子に変換できます。 i.base() にオフセットを適用することによる反復子。したがって、逆反復子を使用して要素を消去するには、次のコードを使用できます。

m_CursorStack.erase(--(i.base()));
ログイン後にコピー

C 11 以降では、逆反復子を使用して要素を消去するために 2 つの追加オプションが使用できます。

1.変更されていない逆反復子

m_CursorStack.erase(std::next(i).base());
ログイン後にコピー

2. Advanced Reverse Iterator

std::advance(i, 1);
m_CursorStack.erase(i.base());
ログイン後にコピー

これらの代替案は、最初のアプローチと比較して、より明確で簡潔なソリューションを提供します。

以上がC で逆反復子を使用してリストから要素を消去する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート