これはおそらくC++初心者には明らかですが、少し困惑しています-クラスの文字列メンバーはそのクラスに可変量のスペースを割り当てますか? それとも、メモリ内の他のスペースにポインタを内部的に割り当てるだけですか? たとえば、この例では:
class Parent {
public:
vector<Child> Children;
}
class Child {
public:
string Name;
}
「new Parent()」を作成し、さまざまな長さの文字列を持ついくつかの子を追加すると、ヒープにどのように割り当てられますか? 親は 4 バイト、子は 4 バイト (または任意のポインター サイズと固定サイズの内部データ)、そしてヒープ上の別の場所にあるランダムな文字列の山ですか? それとも、すべてがメモリにまとめられていますか?
一般的に、コンテナー型は常に固定サイズであり、可変サイズのデータへのポインターのみを含み、そのデータは常にヒープ上にあると思いますか?