目录一、数据类二、数据相关类及相关函数三、同步相关类一、数据类1、PtrStepSz一个包装设备端内存(GPU内存,也就是显存)的轻量级类。可作为CUDA核函数(CUDA kernel)的参数。可以从主机端调用其成员函数、也可以从设备端调用其成员函数。template<typename T>
struct PtrStepSz {
int cols;
int rows;
转载
2024-08-05 19:48:39
107阅读
#include using namespace std; template class MyClass{ public: typename T::SubType * ptr;//vc6里面,此处“typename”可有可无,vs2010里面,此处“typename”必须有 }; class Test{ public: typedef int SubType; }; v...
转载
2017-02-23 16:10:00
25阅读
2评论
主动轮廓线模型又称为Snake模型,自Kass于1987年提出以来,已广泛应用于数字图像分析和计算机视觉领域。由于Snake模型具有良好的提取和跟踪特定区域内目标轮廓的能力,因此非常适合于医学图像如CT和MR图像的处理,以获得特定器官及组织的轮廓。简单的来讲,Snake模型就是一条可变形的参数曲线及相应的能量函数,以最小化能量目标函数为目标,控制参数曲线变形,具有最小能量的闭合曲线就是目标轮廓。
将std::unique_ptr转换成std::shared_ptr:std::shared_ptr temp = std::shared_ptr(std::move(TObject));
原创
2022-06-21 20:33:30
367阅读
1、auto_ptr<T>解决什么问题?
在堆上获取的资源,客户可能会忘记delete,或者由于异常没有执行到delete,导致资源泄漏。在栈上分配的对象,有个特点,不论出现什么情况,超出作用域后,都将调用析构方法。根据这个特点,可以使用栈上的对象管理指针,析构的时候执行delete,确保一定释放资源。
2、auto_ptr就是解决这个问题的,auto_ptr就是个资源管理类,它的
转载
2014-01-17 18:40:00
7阅读
1、shared_ptr<T>解决什么问题?
auto_ptr有个局限,拥有权转移。这往往不符合我们的需求,有时候我们期望,多个资源管理对象可以共享一个资源,当引用计数为0的时候,执行delete。shared_ptr就是为了解决这个问题。
2、shared_ptr怎么解决这个问题?和auto_ptr类似,除此之外,还有几点需要注意:
3、增加一个字段为引用计数,当引用计数为0的时
转载
2014-01-17 19:05:00
32阅读
cv::Ptr类就看成一个cv的一个智能指针,在适当的时间能自动删除指向的对象;工作机制很像C++的内置指针cv::Ptr<cv::Matx33f> p = new cv::Matx33f; //创建一个智能指针p,空构造 //cv::Ptr<cv::Matx33f> pp =makePtr<cv::Matx33f>(); 这种格式在3.0版本可以,在
原创
2022-01-25 15:02:18
3164阅读
1、引用计数字段不能放在资源管理类中。我们的解决办法是,把引用计数和资源绑在一起,进行二次封装。但是这样存在一个大问题,不同类型的资源管理类不能兼容。也就是说,shared_ptr<Dog>不能赋值给shared_ptr<Animal>。
2、你可能会想,使用模版成员方法去解决,但是这里有个问题。因为进行了两次封装,u_ptr的类型还是不一样,也不能赋值。你可能会想,我在u
转载
2014-01-17 21:22:00
30阅读
_RecordsetPtr智能指针,它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录、字段等进行各种操作。要搞清楚:数据库和ADO的记录集是两个不同的概念,是存在于不同物理位置的两个存储空间。 记录集相当于是实际数据的一份拷贝。 正因
转载
2024-05-13 20:05:47
86阅读
mat.at<int>( i ); 整型数组问中的元素 i
mat.at<float>( i,j ); 浮点型数组附中的元素(i, j)
mat.at<int>( pt ) 整型矩阵问中处于 (pt.x,pt.y) 的元素
mat.at<float>( i,j,k ); 三维浮点型矩阵M 中处于 (1,j,k) 位置的元素
mat.at<uc
转载
2020-12-07 09:33:00
1017阅读
2评论
shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用
转载
2019-11-29 10:31:00
169阅读
2评论
#include "boost/scoped_ptr.hpp"#include #include //contain auto_ptrusing namespace std;using boost::scoped_ptr;int main(int argc, char* argv[]){scoped...
转载
2016-01-15 18:24:00
129阅读
2评论
看这里: http://blog..net/lollipop_jin/article/details/8499530 shared_ptr可以多线程同时读,但是涉及到写,需要加锁。 shared_ptr开销较大。 多个(5个以上)shared_ptr共享一个动态对象,那么每个shared_p
转载
2017-03-04 10:55:00
108阅读
2评论
1、weak_ptr (1)、weak_ptr是为了配合shared_ptr而引入的智能指针,它更像是shared_ptr的一个助手,它不具有普通指针的行为,没有重载operator*和->,它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使用情况。 (2)、2个重要接口:bool expired()const ;// 判断是否过期 l
原创
2016-07-31 12:10:14
1152阅读
点赞
文档: http://www.boost.org/doc/libs/1_57_0/libs/smart_ptr/shared_ptr.htm shared_ptr构造有个原型 Introduction The shared_ptr class template stores a pointer to
转载
2015-02-05 17:01:00
151阅读
2评论
shared_ptr weak_ptr是C++ tr1中最具有实用性的一个工具。利用C++的析构函数与引用计数,提供资源自动管理的能力。在vs2010之前,大家用的都是boost中的smartptr库,现在vs2010已经提供了tr1类库。
shared_ptr:
每一个shared_ptr对象内部,拥有两个指针ref_ptr与res_ptr,一个指向引用计数对象,一个指向实际的资源。
在s
原创
2011-03-20 22:36:24
3087阅读
一、auto_ptr auto_ptr这是C++98标准下的智能指针,现在常常已经被C++标准的其他智能指针取代。它的缺点是在转移所有权后会使运行期不安全。C++11新标准,用unique_ptr来代替auto_ptr原有功能。auto_ptr <double> pd;double *p_reg = new double;pd = p_reg; // 不允许pd = ...
原创
2022-11-29 20:04:33
146阅读
标准中对于类成员访问有如下说明: 3 If E1 has the type “pointer to class X,” then the expression E1->E2 is converted to the equivalent form (*(E1)).E2; 即对于指向c...
转载
2011-04-21 01:48:00
125阅读
2评论
很多人听说过标准auto_ptr智能指针机制,但并不是每个人都天天使用它。这真是个遗憾,因为auto_ptr优雅地解决了C++设计和编码中常见的问题,正确地使用它可以生成健壮的代码。本文阐述了如何正确运用auto_ptr来让你的代码更加安全——以及如何避免对auto_ptr危险但常见的误用,这些误用会引发间断性发作、难以诊断的bug。
1.为什么称它为“自动”指针?auto_ptr只是众多可能的智
转载
2015-12-16 17:19:00
200阅读
2评论
C++11中的四种智能指针前言C++ STL 提供了四种智能指针:auto_ptr、unique_ptr、shared_ptr 和 weak_ptr。其中auto_ptr 是 C++98 提供的解决方案,C+11 已将其摒弃,并提出了 unique_ptr 作为 auto_ptr 替代方案。虽然 auto_ptr 已被摒弃,但在实际项目中仍可使用,但建议使用较新的 unique_ptr,因为 un
转载
2022-11-04 09:44:28
368阅读