алгоритмы, которые разрушают и copy_construct - PullRequest
0 голосов
/ 07 мая 2010

Я сейчас строю свою собственную игрушку vector для удовольствия, и мне было интересно, есть ли что-то похожее в следующем или текущем стандарте или в Boost?

Ответы [ 3 ]

1 голос
/ 07 мая 2010

std::vector, если я не ошибаюсь, применяет конструкцию своего распределителя и уничтожает функции для отдельных элементов, так что вы также можете использовать связыватели (например, std::tr1::bind), чтобы std::transform и / или std::for_each сделали это .

Но для цикла копирования также есть std :: uninitialized_copy .

0 голосов
/ 07 мая 2010

STL использует allocators (передается как параметр шаблона по умолчанию в контейнерах STL), которые имеют методы construct и destroy и другие, такие как uninitialized_fill, но не все из них работают в диапазонах , Распределитель, а не контейнер, отвечает за предоставление этих функций. Если вы хотите написать свой собственный векторный класс, такой как STL, вам также придется заново изобретать распределители.

0 голосов
/ 07 мая 2010

Векторные элементы уничтожаются в обратном порядке.

...