Векторный конструктор вызовет bad_alloc
, если не сможет выделить достаточно памяти, нет необходимости в дополнительных проверках.
Использование указателей не очень хорошая идея, если они вам абсолютно не нужны.
Кроме того, похоже, что вы могли бы инициализировать свои векторы напрямую, а не то, как вы это делаете, используя список инициализатора вашего конструктора.Что-то вроде:
struct foo {
std::vector<float> things;
foo(int vsize) : things(vsize) {
// rest of constructor code
}
};