我有std::list例如。带整数:9 10 8 25 70 75 30 14 80
我想在元素10之后移动所有元素,some_position_number例如。= 5. 移动对象的初始顺序很重要,必须与移动后的初始顺序相同。
换句话说,最后需要接收它们之后的some_position_number元素falsetrue
就像第一个例子一样: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 到它。