码迷,mamicode.com
首页 > 其他好文 > 详细

Boost库的学习(一)

时间:2015-09-16 12:42:31      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:

时间和日期的处理一直是很麻烦的问题,在boost库中有专门的对象来解决该问题timer,progress_timer,progress_display,date;

下面分别说明:timer简单的计时器类,可做秒表-----

       progress_timer这个是进度计时器,只需要构造在生命周期结束时自动结束计时并printout;

       progress_display是个图形的进度计时器,但需要注意不能混合用于有shell输出的类或者函数,他会导致图形混乱;

       date     以上都是时间,这个是日期处理的。

内存管理,智能指针

在c++标准库中有个auto_ptr的智能指针,但是他在赋值时产生所有权转移因此不能用于容器,和他类似的是boost::scoped_ptr,但后者是不能发生拷贝构造和赋值;

boost::scoped_array该类为指向数组的智能指针,和scoped_ptr类似区别是使用new[]构造,delete[]释放管理动态数组。该类应该避免使用。

重点:boost::shared_ptr智能指针类能用于标准的容器中,同时仅仅只支持“<”操作符,其他操作符部支持。boost::make_shared工厂函数用于生产多个new shared_ptr操作

  typedef vector<shared_ptr<int> > vs;
  vs v(10);
  int i = 0;
  for(vs::iterator pos = v.begin(); pos != v.end(); ++pos)
    {
      (*pos) = make_shared<int> (++i);
      cout << *(*pos) << ",";
    }
  cout << endl;
  shared_ptr<int> p = v[9];
  *p = 100;
  cout << *v[9] << endl;

 桥接模式,工厂模式; 定制删除器shared_ptr<FILE> fp(fopen("xx.txt","r"), fclose);在释放时不是采用delete去释放资源而是调用定制的函数,此处为fclose();

Boost::shared_array 类似如shared_ptr和scoped_array的结合体,有他们的优点同时有他们的缺点 下标操作不会检查安全性导致未知结果。

Boost::weak_ptr类是协同shared_ptr一起工作的,作为一个良好的观察员他不共享指针,不操作资源。(只做一个安静的“美男子”),可用lock()成员函数来获取一个shared_ptr指针

Boost库的学习(一)

标签:

原文地址:http://www.cnblogs.com/Fr2eW0lf/p/4812770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!