Maison  >  Article  >  développement back-end  >  Comment parcourir des éléments consécutifs sans séparateurs superflus en C ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 23:21:31745parcourir

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>

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>

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!

Déclaration:
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