如何将auto_ptr添加到矢量

时间:2016-11-25 03:58:44

标签: c++ pointers vector

我一直试图解决这个问题好几个小时,因为我无法获得一个删除指针的指针,所以我创建了一个基于文本的程序来进行调试。为什么这不起作用?

#include <iostream>
#include <memory>
#include <vector>

using namespace std;

class A {};

int main() {
    vector<A> as;
    std::auto_ptr<A> a(new A);
    as.push_back(std::move(a));
    return 0;
}

1 个答案:

答案 0 :(得分:1)

考虑到向量包含A个对象,您需要as.push_back(*a)。您不需要std::move,临时*a已经可以移动。