たとえば、200 個の整数の配列があります。私がしたいのは、それを 80 個の整数の 2 つの配列に変換し、間にある 40 個の整数を削除することです。もちろん、目標は、長さ80の整数の2つの新しい配列を割り当てて最初の配列からコピーすることなく、既存のメモリブロックを使用することです.
移動セマンティクスは、同様の低レベルのアプローチを使用して右辺値の不要なコピーを回避するため、同様の効果を達成するが既存のデータを複数のオブジェクトに割り当てる低レベルのアプローチがあるかどうかが私の質問です。
たとえば、カットがあり、新しい要素が始まる生のメモリアドレスにポインターを割り当て、同じデータを使用する配列として機能させ、初期配列によって既に割り当てられて埋められているか?
当然、初期配列を削除してそのアドレスを取得し、それを使用してそのメモリ領域を新しい要素に割り当てることもできますが、新しいオブジェクトを割り当てる正確なアドレスを C++ に伝えることは可能ですか? また、初期配列のデータが削除されてから、同じメモリ領域が新しいオブジェクトに再割り当てされるまでの間に破損しないことを保証する方法はありますか?
このようなアプローチは、私が読んだ c++ に関するどの本にもありませんが、目的の結果を達成するための低レベルのトリックが存在する可能性が非常に高いと感じています。