返回迭代器内容并增加它的简单方法

时间:2014-02-19 13:37:21

标签: c++ reference iterator copy

我想创建一个返回令牌并递增此令牌的方法。

我这样做了:

  

_tokens是一个std :: istream_iterator

std::string             getToken()
{
  std::string           result;

  result = *_tokens;
  ++_tokens;
  return result;
}

如你所见,这有点难看,因为我要寄回一份副本。

但我无法返回结果的引用,因为结果是局部变量。

我无法获得* _tokens的引用因为++ _令牌会改变内容。

你知道我怎么能以更好的方式做到这一点吗?

1 个答案:

答案 0 :(得分:3)

我认为你的意思是以下

std::string             getToken()
{
  return *_tokens++;
}