我目前正在构建自己的玩具 vector
以供娱乐,我想知道当前或下一个标准或 Boost 中是否有类似以下内容的内容?
template<class T>
void destruct(T* begin, T* end)
{
while (begin != end)
{
begin -> ~T();
++begin;
}
}
template<class T>
T* copy_construct(T* begin, T* end, T* dst)
{
while (begin != end)
{
new(dst) T(*begin);
++begin;
++dst;
}
return dst;
}
最佳答案
std::vector
,如果我没记错的话,将其分配器的构造函数和析构函数应用于单个项目,因此您也可以使用绑定(bind)器(如 std::tr1::bind
) 让 std::transform
和/或 std::for_each
做这些。
但是对于复制循环,似乎也有 std::uninitialized_copy .
关于c++ - 破坏和复制构造的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788945/