Вектор будет оставаться живым, пока вы не удалите свою структуру
struct Foo
{
std::vector<int> X;
}
В вышеприведенном случае удаление f также освободит вектор.
Foo* f = new Foo();
delete f;
Если ваш Foo определяется так ... вам нужен деструктор.
struct Foo
{
std::vector<int> *X;
Foo()
{
X = new std::vector<int> ();
}
~Foo()
{
delete X;
}
}
Вы можете выбрать любой из двух подходов.Наилучшим подходом является использование shared_ptr , чтобы вам не пришлось беспокоиться об удалении структуры даже