boost中提供了几种智能指针方法:scoped_ptr shared_ptr intrusive_ptr weak_ptr,而标准库中提供的智能指针为auto_ptr.这其中,我最喜欢,使用最多的是shared_ptr,也最让人随心所欲.使用很简单,如下:头文件 class A{virtual v...
分类:
其他好文 时间:
2014-08-14 01:16:37
阅读次数:
243
Q: 那个auto_ptr是什么东东啊?为什么没有auto_array?A: 哦,auto_ptr是一个很简单的资源封装类,是在头文件中定义的。它使用“资源分配即初始化”技术来保证资源在发生异常时也能被安全释放(“exception safety”)。一个auto_ptr封装了一个指针,也可以被当作...
分类:
其他好文 时间:
2014-08-14 01:12:07
阅读次数:
340
1、实现多线程方法:其实就是多个线程同时调用io_service::run for (int i = 0; i != m_nThreads; ++i) { boost::shared_ptr pTh(new boost::thread( boost::bind(&...
分类:
编程语言 时间:
2014-08-12 00:34:33
阅读次数:
1592
智能指针的学习中文教程网站http://zh.highscore.de/cpp/boost/不过代码可能 由于BOOST 版本不同需要稍作修改scoped_ptr 离开作用域则自动调用类析构函数或者函数delete方法shared_ptr 使用率最高的指针 类似scoped_ptr 但是所有权可以转...
分类:
其他好文 时间:
2014-08-11 20:48:02
阅读次数:
270
RAII(resource acquisition is initialization):资源获取时便是初始化时机。不论控制流如何离开执行的区域块,其析构函数被调用,资源被释放。为防止内存泄露使用auto_ptr或shared_ptr();auto_ptr sp(new class)+shared_...
分类:
其他好文 时间:
2014-08-11 17:22:02
阅读次数:
204
boost::shared_ptr是可以共享所有权的智能指针。下面用例子说明:1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 class Test 8 { 9 public:10 Test()11 {cout p...
分类:
其他好文 时间:
2014-08-08 01:51:05
阅读次数:
306
C++ 98的 std::auto_ptr已经被彻底遗弃了,取而代之的是unique_ptr、shared_ptr与weak_ptr。大部分时候我们自己手动申请内存方式内存都是没有问题的,问题是如果程序很大了之后,一个复杂的对象,多次拷贝的代价非常高,很多地方都会使用到,只存在一份拷贝显然是最好的,...
分类:
编程语言 时间:
2014-08-01 13:27:51
阅读次数:
384
动态分配的vector指针
vector *get_num(int n)
{
vector *pv = new vector(n+1);
int i , x;
for(i = 0; i >x;
(*pv)[i] = (x);
}
return pv;
}
如果是动态分配的vector...
分类:
其他好文 时间:
2014-07-22 22:38:16
阅读次数:
256
shared_ptr智能指针的意思即:boost::shared_ptr是可以智能的管理动态分配的内存资源,几个智能指针可以同时共享一个动态分配的内存的所有权。
下面我们通过一个例子来学习一下它的用法:
注 :使用shared_ptr智能指针,要加入#include 头文件
class example
{
public:
~example() { std::cout "...
分类:
其他好文 时间:
2014-07-21 22:43:47
阅读次数:
297
对于tr1::shared_ptr在安装vs同时会自带安装,但是版本较低的不存在。而boost作为tr1的实现品,包含
“Algorithms
Broken Compiler Workarounds
Concurrent Programming
Containers
Correctness and Testing
Data Structures
Domain Specific
Fu...
分类:
其他好文 时间:
2014-07-19 23:18:19
阅读次数:
371