Чем отличаются эти два вектора? (интеллектуальный указатель)
Я изучаю умные указатели.
class Elf { private: int _health = 0; public: Elf(const int &health){_health = health;} int getHealth(){return _health} };
В чем разница между этими двумя?
Первый случай:
vector<unique_ptr<Elf>> elves; for (auto i = 0; i < 10000; ++i) { elves.push_back(unique_ptr<Elf>(new Elf(90))); }
Второй случай:
auto elves = make_unique<vector<Elf>>(10000, Elf(90));
=========
Второй вопрос.
В первом случае я могу получить доступ к частному члену _health с помощью этого:
for(auto i = 0; i < 10000; ++i){ cout << elves[i]->getHealth() << " "; }
Как получить доступ к _health во втором случае?