Hoe een vector van aanwijzers te initialiseren

Ik werk aan een C++-programma en ik moet een vector van aanwijzers initialiseren. Ik weet hoe ik een vector moet initialiseren, maar als iemand me zou kunnen laten zien hoe ik het moet initialiseren als een vector gevuld met wijzers, zou dat geweldig zijn!


Antwoord 1, autoriteit 100%

Een vector van pointers ter grootte van nul:

std::vector<int*> empty;

Een vector van NULL-pointers:

std::vector<int*> nulled(10);

Een vector van verwijzingen naar nieuw toegewezen objecten (maar niet echt initialisatie):

std::vector<int*> stuff;
stuff.reserve(10);
for( int i = 0; i < 10; ++i )
    stuff.push_back(new int(i));

Een vector van verwijzingen naar nieuw toegewezen objecten initialiseren (vereist C++11):

std::vector<int*> widgets{ new int(0), new int(1), new int(17) };

Een slimmere versie van #3:

std::vector<std::unique_ptr<int>> stuff;
stuff.reserve(10);
for( int i = 0; i < 10; ++i )
    stuff.emplace_back(new int(i));

Other episodes