c++ - 破坏和复制构造的算法

标签 c++ algorithm templates stl object-lifetime

我目前正在构建自己的玩具 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/

相关文章:

c++ - 在C++中使用 vector 实现堆栈

c++ - 如何检查静态成员变量模板?

c++ - 在 C++ 中,如何初始化在 Singleton 模板中声明的私有(private)类的静态成员?

C++ 扩展 Ascii 字符

c++ - 对两个对象使用相同的 VBO 可以吗?

android - 编写简单脚本语言的教程或介绍?

algorithm - 从源排列到目的地的最小移动数

algorithm - 找到点的质心

python - 我可以让 uuid 更随机吗?

c++ - 从C++模板特化那 "base"调用 "overrides"模板函数呢?