> 백엔드 개발 > C++ > C에서 쉼표로 구분된 목록을 효율적으로 인쇄하는 방법은 무엇입니까?

C에서 쉼표로 구분된 목록을 효율적으로 인쇄하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-30 00:01:10
원래의
139명이 탐색했습니다.

How to Efficiently Print Comma-Separated Lists in C  ?

C에서 쉼표로 구분된 목록을 인쇄하는 방법?

C에서 쉼표로 구분된 요소 목록을 인쇄하는 것은 비교하기 까다로울 수 있습니다. Java와 같은 다른 언어로. 이 문제를 해결하기 위해 몇 가지 기술을 탐색합니다.

중위 반복자 사용

중위 반복자를 사용하면 반복 중에 각 요소 사이에 구분 기호를 삽입할 수 있습니다. 이는 표준 출력 반복자의 맞춤형 변형입니다.

// 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;
    }
    // ...
};
로그인 후 복사

중위 반복자와 함께 사용:

#include "infix_iterator.h"

// ...

// Copy elements using infix iterator to insert commas
std::copy(keywords.begin(), keywords.end(), infix_iterator(out, ",")); 
로그인 후 복사

위 내용은 C에서 쉼표로 구분된 목록을 효율적으로 인쇄하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿