Maison > développement back-end > C++ > le corps du texte

Comment parcourir des éléments consécutifs sans séparateurs superflus en C ?

Linda Hamilton
Libérer: 2024-10-26 23:21:31
original
840 Les gens l'ont consulté

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

Itération d'éléments consécutifs sans séparation étrangère

Dans la programmation orientée objet, il est courant d'effectuer une opération entre des éléments consécutifs d'une collection sans introduire de séparateur final indésirable. . Ce problème est résolu en parcourant la collection et en imprimant conditionnellement le séparateur entre les éléments.

En utilisant la boucle for basée sur des distances de C 11, une solution détaillée mais efficace consiste à parcourir les éléments avec un deuxième itérateur avancé d'un :

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

Cependant, cette approche ajoute la surcharge d'un deuxième itérateur et obscurcit la logique principale.

Pour surmonter ce problème esthétique, une approche plus simple consiste à mettre à jour conditionnellement une variable de chaîne qui contient le séparateur :

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

En initialisant la variable sep avec une chaîne vide et en la mettant à jour à l'intérieur de la boucle, nous nous assurons que le séparateur est imprimé entre tous les éléments sauf le dernier. Cela fournit une solution concise et efficace au problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal