Heim > Backend-Entwicklung > C++ > Wie drucke ich effizient durch Kommas getrennte Listen in C?

Wie drucke ich effizient durch Kommas getrennte Listen in C?

Patricia Arquette
Freigeben: 2024-12-30 00:01:10
Original
139 Leute haben es durchsucht

How to Efficiently Print Comma-Separated Lists in C  ?

Wie drucke ich eine durch Kommas getrennte Liste in C?

In C kann das Drucken einer durch Kommas getrennten Liste von Elementen im Vergleich dazu schwierig sein zu anderen Sprachen wie Java. Um dieses Problem zu lösen, untersuchen wir verschiedene Techniken.

Verwendung eines Infix-Iterators

Mit einem Infix-Iterator können Sie während der Iteration ein Trennzeichen zwischen jedem Element einfügen. Es handelt sich um eine angepasste Variante des Standard-Ausgabe-Iterators.

// infix_iterator.h
// Extended output iterator with delimiter insertion

template <typename T, typename charT, typename traits = std::char_traits<charT>>
class infix_ostream_iterator : public std::iterator<std::output_iterator_tag, void, void, void, void>
{
    std::basic_ostream<charT, traits>& os;
    charT const* delimiter;
    bool first_elem;

public:
    infix_ostream_iterator(std::basic_ostream<charT, traits>& s) : os(&s), delimiter(0), first_elem(true) {}
    infix_ostream_iterator(std::basic_ostream<charT, traits>& s, charT const *d) : os(&s), delimiter(d), first_elem(true) {}

    infix_ostream_iterator<T, charT, traits>& operator=(T const &item)
    {
        // Insert delimiter before element unless it's the first
        if (!first_elem && delimiter != 0)
            *os << delimiter;
        *os << item;
        first_elem = false;
        return *this;
    }
    // ...
};
Nach dem Login kopieren

Verwendung mit Infix Iterator:

#include "infix_iterator.h"

// ...

// Copy elements using infix iterator to insert commas
std::copy(keywords.begin(), keywords.end(), infix_iterator(out, ",")); 
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie drucke ich effizient durch Kommas getrennte Listen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage