私の目的は、事前に準備された多くのベクトルを作成することです (後で 2 つのデータ メンバーはありませんが、連続メモリにできるだけ多く割り当てたいと思います)。これらの準備された「シェル」の 1 つをすばやく使用して、オブジェクトをより迅速にインスタンス化できます。最も重要なことは、これらのオブジェクトのすべてが同じ連続したメモリ アドレスに配置されることです。
上記を達成するために、私はこれを行いました:
vector<MyClass*>* v = new vector<MyClass>();
v.reserve(10000);
//Later on....
// I want to create my object in the continuous memory I "reserved"
// and have a variable name to it:
v->push_back(MyClass m(10,20));
process(m);
しかし、オブジェクトに変数名を付けたままコンパイルすることはできません....ここにMyClassがあります:
class MyClass{
public:
MyClass();
MyClass(int a, int b);
MyClass(const MyClass& m);
int a;
int b;
private:
//Made above example simpler by putting everything public
}