我正在尝试实现一个简单的 ostream_itreator,它流式传输每个第 N 个元素,但我收到一个类型错误
error: no type named ‘value_type’ in ‘struct std::iterator_traits<outIterator<int> >’
typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
Run Code Online (Sandbox Code Playgroud)
代码:
#include <iostream>
#include <vector>
#include <iterator>
template<class T>
class outIterator {
std::ostream *stream;
size_t N;
const char* delim;
size_t counter = 0;
public:
// initialization
outIterator(std::ostream& out)
: stream(&out)
, N(1)
, delim(" ")
{}
outIterator(std::ostream& out, size_t N, const char* delimiter)
: stream(&out)
, N(N)
, delim(delimiter)
{}
// =
outIterator<T>& operator= (const T& value) {
if (counter % N == …Run Code Online (Sandbox Code Playgroud)