単純な古い Cを使用する場合、次のように実装されるデータ型があります
typedef struct {
...many other members here...
unsigned short _size;
char _buf[0];
} my_data;
私がやりたいのは、基本的にそれをクラスにして、 less、equality、copy constructor、operator assignmentなどの通常の演算子を追加することです。ご想像のとおり、 std::mapなどの連想コンテナーでそのようなクラスをkeyとして使用します。
バッファは理想的にはオブジェクト自体と同じレベルにある必要があります。そうしないと、2 つのバッファ (バッファ) を比較する必要があるときに、CPU がポインタを取得してメモリにロードする必要があります。割り当てられたメモリが残りのデータメンバーと連続していないため、std::vectorを使用したくありません。
私にとっての主な問題は、バッファのサイズが適切なメモリサイズを割り当てる関数がCにあるという事実です。C++ では、そのようなことはできません。
私は正しいですか?乾杯