В зависимости от версии C ++ у вас будет несколько вариантов (если я понимаю проблему): если у вас более старая версия c ++, то c ++ 11 я бы в этом случае объявил std :: vector как:
// then you really need to make sure u delete the memory as well
std::vector<float*> vpd(6);
Если, однако, у вас есть c ++ 11 или выше, я бы использовал либо std :: share_ptr, либо std :: unique_ptr, в зависимости от того, хотите вы разделить пространство памяти или нет.Либо это будет гарантировать, что память будет удалена сама по себе, без необходимости делать «delete float *;»что приятноВы можете прочитать о std :: shared_ptr по адресу: https://en.cppreference.com/w/cpp/memory/shared_ptr и std :: unique_ptr по адресу: https://en.cppreference.com/w/cpp/memory/unique_ptr
// For unique_ptr
std::vector<std::unique_ptr<float>> vpd(6);
// for std::shared_ptr
std::vector<std::shared_ptr<float>> vpd(6);
Я бы сказал, что если вы затем можете использовать unique_ptr, а не shared_ptr из-заshared_ptr имеет некоторую дополнительную сложность, чтобы убедиться, что память не используется перед удалением памяти.