C++数组"剪切"算法

lam*_*bda 1 c++

有没有办法交换数组的两个部分而不需要创建一个新部分?喜欢切一副纸牌?我能够通过分配一个新数组,然后先插入顶部扇区,然后插入下部扇区元素.

我已尝试在没有额外数组的情况下执行此操作并且有两个临时变量来保存元素,而算法在各部分之间进行交换.问题是我的尝试适用于特定情况.

例如:

原始数组:0 1 2 | 3 4 5 6 7

在指数二下跌

交换数组:

3 4 5 6 7 | 0 1 2

Jer*_*fin 5

您可以使用std::rotate此任务.它对集合中的数据进行左旋转,因此您指定一个"切割"点,并移动元素,使紧跟在指定切割点之后的元素将位于开始处,而切割点之前的元素将移动被移到最后.

在此输入图像描述