オブジェクトの配列を配列の右側にシフトする関数を実装しようとしています。インターネットで見つけたのは循環シフトの実装だけですが、それは私が探しているものではありません。右側に実際に空きスペースがある場合は、要素を右にシフトしたいと思います。オブジェクト Packet の配列を作成し、そのサイズが 10 であるとします。
Packet* a[] = { p4 , p3 , p2 , p1, null, null, null, null, null, null }
シフト機能は、すべてを右にシフトするだけです
{ null ,p4 , p3 , p2 , p1, null, null, null, null, null }
配列の末尾に要素がある場合
{ p10, p9, p8, p7 ,p6 ,p5 ,p4 , p3 , p2 , p1}
関数は何もシフトしません。
{ p4 , p3 , p2 , p1, null, null, null, null, null, null }
私の実装のアイデアは、配列を一時配列にコピーし、元の配列のすべてを消去してから、位置 [0] ではなく位置 [1] からコピーすることです。しかし、これはあまり効率的ではないようです。
他のアイデアはありますか?