Rumah > pembangunan bahagian belakang > C++ > Bagaimana Mencetak Senarai Dipisahkan Koma dengan Cekap dalam C ?

Bagaimana Mencetak Senarai Dipisahkan Koma dengan Cekap dalam C ?

Patricia Arquette
Lepaskan: 2024-12-30 00:01:10
asal
139 orang telah melayarinya

How to Efficiently Print Comma-Separated Lists in C  ?

Bagaimana untuk Mencetak Senarai Dipisahkan Koma dalam C ?

Dalam C , mencetak senarai unsur yang dipisahkan koma boleh menjadi rumit berbanding kepada bahasa lain seperti Java. Untuk menyelesaikan masalah ini, kami meneroka beberapa teknik.

Menggunakan Infix Iterator

Infix Iterator membenarkan anda memasukkan pembatas antara setiap elemen semasa lelaran. Ia merupakan variasi tersuai bagi lelaran output standard.

// 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;
    }
    // ...
};
Salin selepas log masuk

Penggunaan dengan Infix Iterator:

#include "infix_iterator.h"

// ...

// Copy elements using infix iterator to insert commas
std::copy(keywords.begin(), keywords.end(), infix_iterator(out, ",")); 
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Mencetak Senarai Dipisahkan Koma dengan Cekap dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan