C++ 重新定位向量的一部分

C++ 重新定位向量的一部分,c++,vector,std,C++,Vector,Std,我想从向量(删除项目)中取出一个范围,并将它们以相同的顺序插入到同一向量中,但插入到其他位置 示例: 0 1 2 3 4 5 Original vector: A B C D E F 取范围1-3并插入(在)4之后 0 1 2 3 4 5 Resulting vector: A E B C D F 我可能可以使用for循环,或者使用and来实现这一点。有更好/更快的方法吗?我不喜欢remove\u copy的地方是我

我想从
向量
(删除项目)中取出一个范围,并将它们以相同的顺序插入到同一向量中,但插入到其他位置

示例:

                  0 1 2 3 4 5
Original vector:  A B C D E F
取范围
1-3
并插入(在)
4
之后

                  0 1 2 3 4 5
Resulting vector: A E B C D F

我可能可以使用
for
循环,或者使用and来实现这一点。有更好/更快的方法吗?我不喜欢
remove\u copy
的地方是我必须指定一个不应该删除的
值。我想移动所有这些变量,但我不确定是否可以指定一个在
向量中从未出现过的

#包括
#包括

//| | |您可以使用
std::copy_backward
复制对象(复制,不移动),然后使用
std::vector::erase
删除原始对象

例如:

std::copy_backward(v.begin()+1, v.begin()+3, v.begin()+4);
v.erase(v.begin()+1, v.begin()+3);

这个“其他位置”是进入同一媒介(但不同的地方)还是没有?@Cornstales是的,对不起,我忘了说那个。我更新了我的问题。如果是单独的向量,我想可以用它来完成。谢谢!我不知道
rotate
会这样做。
std::copy_backward(v.begin()+1, v.begin()+3, v.begin()+4);
v.erase(v.begin()+1, v.begin()+3);