我有std::list
例如。带整数:9 10 8 25 70 75 30 14 80
我想在元素10
之后移动所有元素,some_position_number
例如。= 5
. 移动对象的初始顺序很重要,必须与移动后的初始顺序相同。
换句话说,最后需要接收它们之后的some_position_number
元素false
true
就像第一个例子一样:10 25 70 75 30 9 * 8 * 14 80
第二个首字母:9 3 8 25 70 75 30 14 80
第二个结果:10 25 70 75 30 9 * 3 * 8 14 80
第三个首字母:25 70 75 30 14 9 3 8 80
第三个结果:(25 70 75 30 14 9 3 8 80
开头已经是5)
4 初始:3 4 1 2 3 9 3 8 80
4 结果:(9 3 8 80 3 4 1 2 3
类似这样)似乎some_position_number
必须将这里用作阈值或80 3 4 1 2 3 9 3 8
也接受,但似乎需要检查 end() 和无限循环?
如何做到这一点最有效的方式,也许没有额外list
的以避免不必要的对象创建和擦除?std::list
因为在真正的应用程序中, , 但对象没有整数。也许 std::splice?以某种方式选择需要移动的对象,而不是找到新位置并将每个元素 std::splice 到它。