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!