如何在 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中文网其他相关文章!