ホームページ  >  記事  >  バックエンド開発  >  C で無関係な区切り文字を使用せずに連続する要素を反復処理する方法

C で無関係な区切り文字を使用せずに連続する要素を反復処理する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 23:21:31842ブラウズ

How to Iterate Through Consecutive Elements Without Extraneous Separators in C  ?

無関係な区切りなしで連続要素を反復する

オブジェクト指向プログラミングでは、不要な末尾区切り文字を導入せずにコレクションの連続要素間の演算を実行するのが一般的なタスクです。 。この問題は、コレクションを反復処理し、要素間の区切り文字を条件付きで出力することで解決されます。

C 11 の範囲ベースの for ループを使用すると、冗長ではありますが効果的な解決策は、2 番目の反復子を 1 つ進めて要素を反復処理することです。 :

<code class="cpp">for (auto it = items.cbegin(); it != items.cend(); it++) {
    cout << *it;
    if (std::next(it) != items.cend()) {
        cout << separator;
    }
}</code>

ただし、このアプローチでは 2 番目のイテレータのオーバーヘッドが追加され、メイン ロジックがわかりにくくなります。

この美的問題を克服するには、より簡単なアプローチは、文字列変数を条件付きで更新することです。セパレータを保持します:

<code class="cpp">const auto separator = "WhatYouWantHere";
const auto* sep = "";
for (const auto& item : items) {
    std::cout << sep << item;
    sep = separator;
}</code>

sep 変数を空の文字列に初期化し、ループ内で更新することにより、最後の要素を除くすべての要素の間にセパレータが確実に出力されます。これにより、問題に対する簡潔かつ効率的な解決策が得られます。

以上がC で無関係な区切り文字を使用せずに連続する要素を反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。