В прошлом я всегда создал карту, как это:Правильное использование станд :: карта в качестве члена класса
class TestClass
{
private:
std::map<int,int> *mapA;
};
TestClass::TestClass
{
mapA = new std::map<int,int>();
}
TestClass::~TestClass
{
mapA->clear(); // not necessary
delete mapA;
}
Итак, теперь я читаю повсюду в Stackoverflow: ИЗБЕЖАТЬ указатели как можно чаще
В настоящее время я хочу создать карту без указателя и новой (нет необходимости удалять объект самостоятельно и меньше опасности получить утечку памяти)!
class TestClass
{
public:
TestClass() : mapA() // this is also needed?
{};
private:
std::map<int,int> mapA;
};
Какие-либо дальнейшие шаги для правильного создания карты необходимо?
Благодарим за помощь и/или разъяснение!
Я только что заметил, что вы отредактировали в mapA-> clear() свой исходный деструктор. Это не обязательно - карта будет очищаться во время деконструкции. – zennehoy
Вам не нужно называть 'map :: clear' в любом случае. – Ajay