我用这样的原型编写了一些函数:
template <typename input_iterator>
int parse_integer(input_iterator &begin, input_iterator end);
这个想法是调用者将提供一系列字符,并且该函数会将字符解释为整数值并返回它,begin
在最后使用的字符之后留下一个。例如:
std::string sample_text("123 foo bar");
std::string::const_iterator p(sample_text.begin());
std::string::const_iterator end(sample_text.end());
int i = parse_integer(p, end);
这将i
设置为 123 并p
“指向”之前的空间foo
。
从那以后我被告知(没有解释)通过引用传递迭代器是不好的形式。是不是形式不好?如果是这样,为什么?