Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何转移boost::ptr_vector元素的所有权?_C++_Boost - Fatal编程技术网

C++ 如何转移boost::ptr_vector元素的所有权?

C++ 如何转移boost::ptr_vector元素的所有权?,c++,boost,C++,Boost,ptr\u-vector::release返回一个ptr\u-vector::auto\u-type,这是一种轻量级智能指针,当auto\u-type项目超出范围时,它指向的东西会自动删除。要恢复指向该对象的原始指针,并防止其被持有它的auto_ptr删除,您也需要调用release: deleted 0x300300 deleted 0x300300 c(6832) malloc: *** error for object 0x300300: double free intmain(){ p

ptr\u-vector::release
返回一个
ptr\u-vector::auto\u-type
,这是一种轻量级智能指针,当
auto\u-type
项目超出范围时,它指向的东西会自动删除。要恢复指向该对象的原始指针,并防止其被持有它的
auto_ptr
删除,您也需要调用
release

deleted 0x300300
deleted 0x300300
c(6832) malloc: *** error for object 0x300300: double free
intmain(){
ptr_向量v;
v、 推回(新A);
A*temp=v.release(v.begin()).release();
删除临时文件;
返回0;
}
第一次
释放
告诉
ptr\u向量
放弃它;第二个命令告诉
auto_ptr
也放弃它

deleted 0x300300
deleted 0x300300
c(6832) malloc: *** error for object 0x300300: double free
int main() {
    ptr_vector<A> v;
    v.push_back(new A);
    A *temp=v.release(v.begin()).release();
    delete temp;
    return 0;
}