可能重复:
C++ 是否存在循环列表的标准实现?
我正在寻找一种访问行为“类似环形”的数据结构,因此如果我增加迭代器并达到结尾,它将被重置为开头。如果我添加数据,大小应该会增加。
void ++(iterator& it, datastructure& data)
{
++it; // should have checked if it is already the end
if( it == data.end() && data.size() )
{
it = data.begin();
}
}
我认为boost::circular_buffer
这不是我要找的,因为插入的行为是环状的。我的名单应该被允许无限增长。
有没有一种标准的方法呢?我可以很容易地找到解决方法,但很好奇是否存在这样的东西。一个链表,其末端总是连接到第一个元素或类似的元素。
更新
如s3rius
建议的那样,我查看了一个类似的问题,并且有一个示例如何为此类事情编写自己的迭代器。我会试试这个,也投票赞成关闭。