@Quad_Tree

Нужно ли использовать allocator::construct()?

В книге Бъёрне Страуструпа инициализация объектов проходит только через construct(). В случае копирования код выглядит вот так:
for (int i=0; i<sz; ++i) alloc.construct(&p[i], elem[i]);


Но если использовать std::copy, то работать будет всё точно так же:
std::copy(elem, elem+sz, p);

Обязательно ли использовать allocator::construct() для инициализации объекта?
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
myjcom
@myjcom Куратор тега C++
Смотря что вы хотите сделать.
Джосаттис The C++ Standard Library: A Tutorial and Reference
5c6e72912c769736917860.png


Но если использовать std::copy, то работать будет всё точно так же:

ага только там внутри будет memcpy или memove.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@laphroaig
Если вы используете аллокатор для выделения памяти, то нет смысла не использовать его для инициализации. Другой вопрос имеет ли смысл вообще его использовать. Если вы не совсем понимаете зачем нужен аллокатор, то скорее всего он вам вообще не нужен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы