首页 > 其他 > 详细

Boost库的学习(一)

时间:2015-09-16 12:41:54      阅读:168      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!