Есть некая структура MyStruct1. Экземпляры этой структуры создаются в куче, оператором new. Указатели на эти экземпляры укладываются в вектор std::vector<MyStruct1*> vec1. Данный вектор, в свою очередь, является элементом структуры MyStruct2. Экземпляры структуры MyStruct2 укладываются в вектор vec2 (не указатели, а сами объекты). Код, выполняющий все это, примерно такой:
struct MyStruct1
{
int parameter1;
int parameter2;
int parameter3;
};
struct MyStruct2
{
char data[16];
std::vector<MyStruct1*> vec1;
};
typedef std::vector<MyStruct2> Vector2;
void f(void)
{
// ....
Vector2 vec2;
MyStruct1* p;
MyStruct2 str;
str.vec1.clear();
p = new MyStruct1;
str.vec1.push_back(p);
vec2.push_back(str);
str.vec1.clear();
p = new MyStruct1;
vec1.push_back(p);
p = new MyStruct1;
vec1.push_back(p);
vec2.push_back(str);
str.vec1.clear();
p = new MyStruct1;
vec1.push_back(p);
p = new MyStruct1;
vec1.push_back(p);
p = new MyStruct1;
vec1.push_back(p);
vec2.push_back(str);
// ...
return;
}
Т.о. в векторе vec2 находится 3 элемента структуры MyStruct2. Но, в каждом из этих элементов длина вектора vec1 разная; 1, 2 и 3.
Получается, что длина элементов контейнера vec2 — разная! Правильно ли это? Если нет, то как сделать правильно?
Спасибо за помощь