Векторы имеют внутренний указатель, указывающий на данные, которые они содержат.Таким образом, вам не нужен указатель на сам вектор, независимо от размера данных.
Например, если вам нужен доступ к внутреннему указателю, вы можете получить его так:
// just for show, don't do this unless you absolutely must
Matrix* matrix = _matrices.data();
Основная причина наличия векторов указателей на использование полиморфизма , но это не так в вашем случае.В противном случае введение указателей является излишним и менее эффективным.
Единственная возможная причина, по которой я могу придумать, где указатели на векторы имеют смысл, - это если вам нужно поделиться владением aвектор через различные компоненты.
В этом случае std :: shared_ptr может иметь смысл:
std::shared_ptr<std::vector<Matrix>> shared_matrices;
Но я думаю, что это будет довольно редко.