Просто интересно, что вы думаете, является лучшей практикой в отношении векторов в C ++.
Если у меня есть класс, содержащий переменную-член вектора. Когда должен быть объявлен этот вектор:
vector my_vector;
vector * my_vector ;
vector my_vector;
vector * my_vector;
У меня есть конкретный пример в одном моих классов, где я в настоящее время объявил вектор как case 4, то есть vector
где AnotherClass - это еще один из созданных мною классов.
Затем в списке инициализации моего конструктора я создаю вектор, используя new:
MyClass::MyClass()
: my_vector(new vector<AnotherClass*>())
{}
В моем деструкторе я делаю следующее:
MyClass::~MyClass()
{
for (int i=my_vector->size(); i>0; i--)
{
delete my_vector->at(i-1);
}
delete my_vector;
}
Элементы векторов добавлены в один из методов моего класса. Я не могу заранее знать, сколько объектов будет добавлено к моему вектору. Это решается при выполнении кода на основе анализа xml-файла.
Является ли это хорошей практикой? Или вместо этого вектор должен быть объявлен как один из других случаев 1, 2 или 3?
Когда использовать какой случай?
Я знаю, что элементы вектора должны быть указателями, если они являются подклассами другого класса (полиморфизм ). Но следует ли использовать указатели в других случаях?
Большое спасибо !!