Я работаю над программой на C++, и мне нужно инициализировать вектор указателей. Я знаю, как инициализировать вектор, но если бы кто-нибудь мог показать мне, как инициализировать его как вектор, заполненный указателями, это было бы здорово!
Ознакомьтесь с stackoverflow.com/questions/258871/, чтобы увидеть используемые векторы. — person Joshua Vaughan schedule 01.02.2012
также stackoverflow.com/questions/817263/ — person Joshua Vaughan schedule 01.02.2012
Вектор указателей нулевого размера:
Вектор нулевых указателей:
Вектор указателей на недавно выделенные объекты (хотя это и не инициализация):
Инициализация вектора указателей на вновь выделенные объекты (требуется С++ 11):
Более умная версия № 3:
Спасибо, ребята, это помогает! — person Joshua Vaughan; 01.02.2012
Бу за исключение небезопасности! — person Joshua Vaughan; 01.02.2012
emplace_back
ничего не покупает со скалярными типами, такими как указатели. — person Joshua Vaughan; 01.02.2012@FredOverflow: конструктор
unique_ptr
является явным, поэтому вам нужно либо использоватьemplace_back
, либоstuff.push_back(std::unique_ptr<int>(new int(i)));
. Между нимиemplace_back
намного чище. — person Joshua Vaughan; 01.02.2012@JamesMcNellis Я исправлен. — person Joshua Vaughan; 01.02.2012