可能重复:
Does a standard implementation of a Circular List exist for 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
建议的那样,我查看了一个类似的问题,并且有一个示例如何为这样的事情编写自己的迭代器。我会试试这个,也投票结束。