Maison >développement back-end >C++ >Comment parcourir élégamment entre des paires consécutives d'éléments et insérer des séparateurs en C moderne ?
Itérer entre des paires consécutives d'éléments avec des constructions C modernes
La tâche d'itérer sur une séquence et d'imprimer ses éléments avec un séparateur, mais l'exclusion du séparateur après le dernier élément est un défi de programmation courant. Bien que les boucles ou itérateurs traditionnels de style C avec des appels de fonction next() explicites offrent des solutions, ces approches peuvent ne pas être aussi élégantes ou concises pour une utilisation avec les fonctionnalités C modernes.
Une approche qui exploite les constructions C 11 consiste à introduire un variable pour suivre dynamiquement l'état d'itération actuel, comme suit :
<code class="cpp">const auto separator = "WhatYouWantHere"; const auto* sep = ""; for (const auto& item : items) { std::cout << sep << item; sep = separator; }</code>
Dans cette solution, nous initialisons un séparateur de variable constante pour stocker la chaîne de séparation souhaitée. Nous créons également un pointeur vers un caractère constant, sep, qui pointera initialement vers une chaîne vide, supprimant ainsi toute sortie avant le premier élément.
Dans la boucle basée sur la plage, nous concaténons la valeur actuelle de sep avec l'élément actuel et imprimer le résultat. Après cette étape, nous définissons sep pour qu'il pointe vers la constante séparateur, insérant ainsi le séparateur pour tous les éléments suivants.
En employant cette approche, nous évitons le besoin de branchement explicite ou de casse spéciale du premier ou du dernier élément. La syntaxe élégante et concise en fait une solution appropriée pour parcourir des séquences et insérer des séparateurs entre des éléments consécutifs dans les bases de code C modernes.
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!