草庐IT

gray8_ptr_t

全部标签

c++ - 使用 boost shared_ptr

我必须使用智能指针,我发现来自boost的“shared_ptr”看起来不错。我下载了boost库,在那里我可以看到很多文件和库。有没有办法只使用shared_ptr? 最佳答案 boostbcp是你的friend。它允许从它的树中提取单独的boost库。我过去成功地使用了它。shared_ptr仅包含header,因此这对您特别有用。 关于c++-使用boostshared_ptr,我们在StackOverflow上找到一个类似的问题: https://st

c++ - shared_ptr 到数组

如何动态分配shared_ptr将指向的“n个元素”?我能够创建一个共享指针将指向的静态数组,但我希望用户输入一个数字,然后分配n个元素。shared_ptrp=make_shared(); 最佳答案 你应该像那样创建那个shared_ptrstd::shared_ptrsp(newint[10],std::default_delete());你必须给其他删除器shared_ptr您不能使用std::make_shared,因为该函数只提供1个参数,要在数组上创建指针,您还必须创建删除器。或者你也可以使用(比如在注释中,使用数组或v

c++ - std::tr1 中的 shared_ptr

我正在使用gcc编译器的平台上工作,但是boost无法在其上编译。我想知道在gcc的std:tr1中包含shared_ptr的正确方法是什么?我查看的文件说不直接包含它,据我所知没有其他文件包含它:| 最佳答案 在G++4.3中,#include应该可以解决问题。您将在std::tr1::shared_ptr找到shared_ptr。 关于c++-std::tr1中的shared_ptr,我们在StackOverflow上找到一个类似的问题: https://

c++ - 如何为 std::vector 创建一个 shared_ptr?

我需要为std::vector创建一个shared_ptr,正确的语法是什么?std::vectormVector;shared_ptr>mSharedPtr=&mVector;上面的代码无法编译。谢谢。 最佳答案 你要做的是让一个智能指针管理一个栈对象。这是行不通的,因为堆栈对象在超出范围时会自行终止。智能指针无法阻止它这样做。std::shared_ptr>sp;{std::vectormVector;sp=std::shared_ptr>(&mVector);}sp->empty();//danglingreference,a

c++ - 尽管使用 unique_ptr 内存泄漏

我有一个类的构造函数,它用传递给它的值初始化该类内部的unique_ptr。出于某种原因,valgrind提示内存泄漏:22,080(24direct,22,056indirect)bytesin1blocksaredefinitelylostinlossrecord6of6at0x4C2C7A7:operatornew(unsignedlong)(in/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)by0x4A64FB:VectorBasedNodeOrder::VectorBasedNodeOrder(VectorBasedN

c++ - 将 'this' 转换为 std::shared_ptr

我在类上有一个方法可以使特定实例成为“事件”实例:voidmakeActive(){activeInstance=this;}但是自activeInstance起它就不起作用了。类型为std::shared_ptr.我怎么投this至std::shared_ptr? 最佳答案 如果您的对象已经被一个shared_ptr拥有,您可以通过让您的对象继承自std::enable_shared_from_this来生成另一个shared_ptr此代码将起作用:voidmakeActive(){activeInstance=shared_fr

c++ - 为什么 auto_ptr 构造不能使用 = 语法

我遇到了一个对我来说意义不大的编译器错误:#includeusingnamespacestd;auto_ptrtable=db->query("select*fromt");错误:请求从“Table*”到非标量类型“std::auto_ptr”的转换但是,以下行确实有效:auto_ptrtable(db->query("select*fromt"));构造函数的这个定义阻止它按我预期的方式工作的原因是什么?我认为初始化声明使用了构造函数。这是我的auto_ptr的构造函数(来自SGISTL):explicitauto_ptr(element_type*__p=0)throw():_M_

c++ - 如何将 Boost::shared_ptr<T> 暴露给 Tcl + SWIG 接口(interface)文件?

我想使用SWIG将boost::shared_Ptr暴露给Tcl层。但目前我不知道我可以公开这个。我发现SWIG/Lib文件夹包含shared_ptr.i的接口(interface)文件。但是在内容中我发现不能直接使用。它必须包含在“boost_shared_ptr.i”之后。但是在“SWIG/Lib/tcl”文件夹中没有像boost_shared_ptr.i这样的东西,但我们有类似的接口(interface),我可以将其包含在Java中。 最佳答案 当我上次尝试时,所有SWIG都没有对boost/shared_ptr提供很好的支持

c++ - 模板 shared_ptr 参数

我收到此代码的编译器错误:#include#includestructName{};typedefboost::shared_ptrNamePtr;structFoo{NamePtrname;};typedefboost::shared_ptrFooPtr;templatevoidsetName(Titem,NamePtrname=boost::make_shared()){item->name=name;}intmain(){FooPtrfoo=boost::make_shared();setName(foo);return0;}如下:main.cpp:errorC2780:'boo

【C++】【图像处理】均值滤波和高斯滤波(低通滤波)算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)

1voidmeanFilter(BYTE*image,intwidth,intheight,BYTE*outImg)2{3//均值滤波4intsmth[9];5inti,j,m,n;6BYTEblock[9];78//高斯卷积核初始化9smth[0]=1,smth[1]=2,smth[2]=1,10smth[3]=2,smth[4]=4,smth[5]=2,11smth[6]=1,smth[7]=2,smth[8]=1;1213intvalue;14for(i=0;i9;i++)//初始化均值卷积核15smth[i]=1;1617for(i=0;i)18for(j=0;j){19//将输出图像