次のプロパティを持つ動的配列があります。
- キーと値のペア構造を格納します。
- エントリが追加されるたびにメモリを再割り当てします (realloc)。コンストラクターを呼び出します。
- 削除はトリッキーです - 削除されるエントリは、どこからでも配列の最後に移動する必要があります - その内容 (キーと値) は、配列内の現在の最後の項目と交換する必要があります。デストラクタを呼び出します。エントリが削除されるようにメモリを再割り当てします。
ここでの問題は、最初に参照によって値をエントリに保存したことです。でも、それでは使えませんoperator=
。しかし、値で保存することもできません。そして、ポインターを保存したくありません。これは、目的全体を無効にするためです。現時点で残っている唯一のオプションは、削除されるエントリで新しい配置を呼び出し、最後の要素からコピー コンストラクターを呼び出すことです。これにより、参照によって値を保持できます。何かアドバイス?または、私が注意すべき落とし穴はありますか?