В зависимости от семантики вашего класса, вы можете реализовать оператор []:
T& operator[](int i) {
return my_vec[i];
}
Таким образом, вы можете [] получить доступ к содержимому вашего вектора:
MCL a;
a[0] = 3;
std::cout << a[0] << std::endl;
Обратите внимание, что это может считаться злоупотреблением оператором [] или плохой практикой, но разработчик должен решить, соответствует ли эта конструкция классу, в зависимости от его семантики.Решение не предоставляет способ вставки или удаления элементов из вектора, просто доступ к уже существующим элементам.Возможно, вы захотите добавить другие методы, чтобы сделать это или реализовать что-то вроде:
T& operator[](int i) {
if(my_vec.size() < i)
my_vec.resize(i+1);
return my_vec[i];
}
Опять же, это зависит от семантики вашего класса и модели его использования.Это может быть или не быть хорошей идеей.