是否有类似于python的itertools :: cycle的C ++类(或libboost类)?
我正在寻找一个可以“滚动”或“在一个循环中移动”的容器类。整数示例:
MyCont = {{1,2,3}}
MyCont.roll() // MyCont now holds {{2,3,1}}
cout << MyCont[0] << endl; // returns 2
cout << MyCont[1] << endl; // returns 3
我是否需要自己实施,或者某处是否存在现有实施?
上面的例子演示了我正在寻找的行为,但我的情况稍微有些困难:我的容器包含对象,每个对象都嵌入一个大型数组。我想重新排序容器的项目而不执行深层复制。这样做的最佳方式是什么?