Я бы не рекомендовал делать много вещей с необработанными указателями, позже это может стать действительно беспорядочным и отлаживать это кошмар. Я бы использовал generi c vector
template<typename T>
std::vector<T>
, чтобы при необходимости можно было использовать разные типы. Но если вы имеете дело только с числами, я бы не стал переоценивать его.
Для умножения вы можете использовать перегрузку оператора. Вы можете посмотреть на ту же уже существующую реализацию и посмотреть, есть ли что-то, что соответствует вашим потребностям. Быстрое исследование в Google дало мне следующее:
CodeProject
Если вы найдете что-то еще, не стесняйтесь добавить это к своему вопросу, чтобы никому не пришлось изобретать велосипед.