Heim > Artikel > Backend-Entwicklung > Wie kann man in C durch aufeinanderfolgende Elemente ohne überflüssige Trennzeichen iterieren?
Bei der objektorientierten Programmierung ist es eine häufige Aufgabe, eine Operation zwischen aufeinanderfolgenden Elementen einer Sammlung durchzuführen, ohne ein unerwünschtes Trennzeichen am Ende einzuführen . Dieses Problem wird durch Durchlaufen der Sammlung und bedingtes Drucken des Trennzeichens zwischen Elementen behoben.
Bei Verwendung der bereichsbasierten for-Schleife von C 11 besteht eine ausführliche, aber effektive Lösung darin, die Elemente mit einem um eins vorgezogenen zweiten Iterator zu durchlaufen :
<code class="cpp">for (auto it = items.cbegin(); it != items.cend(); it++) { cout << *it; if (std::next(it) != items.cend()) { cout << separator; } }</code>
Dieser Ansatz erhöht jedoch den Overhead eines zweiten Iterators und verdeckt die Hauptlogik.
Um dieses ästhetische Problem zu lösen, besteht ein einfacherer Ansatz darin, eine Zeichenfolgenvariable bedingt zu aktualisieren enthält das Trennzeichen:
<code class="cpp">const auto separator = "WhatYouWantHere"; const auto* sep = ""; for (const auto& item : items) { std::cout << sep << item; sep = separator; }</code>
Indem wir die Variable sep mit einem leeren String initialisieren und innerhalb der Schleife aktualisieren, stellen wir sicher, dass das Trennzeichen zwischen allen Elementen außer dem letzten gedruckt wird. Dies bietet eine präzise und effiziente Lösung des Problems.
Das obige ist der detaillierte Inhalt vonWie kann man in C durch aufeinanderfolgende Elemente ohne überflüssige Trennzeichen iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!