Boost程序库完全开发指南笔记

第1章 Boost程序库总论

1.1关于Boost

1.1.1 什么是Boost

Boost库是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库。

1.1.3 使用Boost

Boost库的头文件与我们平常所用的头文件(*.h)或C++标准库头文件(没有后缀名)不同,它把C++类的声明和实现都放在了一个文件中,而不是分成两个文件,也就是“.h+.cpp”,故文件的后缀是.hpp

之所以这么做当然是有理由的。首先就是与普通的C头文件(*.h)区分,另一个很重要的原因就是使Boost库不需要预告编译,直接引入程序员的工作即可编译链接,方便了库的使用。最后一个(无奈的)原因则是C++编译器的限制,许多编译器尚不支持c++标准提出的模板的分离编译模式(export关键字),而Boost库大量使用了模板,为了保持与各个编译器的兼容也不得不采用这种.hpp的头文件形式。

1.2 关于STLport

1.2.1 什么是STLport

STLport是一个完全C++98标准(及2003年修订)的一个免费的C++标准库实现。STLport具有很多其他STL实现所没有的优点。首先是高度的可移植性,可以配合市面上几乎所有的操作系统和编译器使用,使开发的程序能够在不同的编译平台上获得一致的标准库实现。其次是性能表现优秀,其原始版本SGISTL就以高效而闻名,STLport在移植特别注重性能与效率,而且100%完全符合C++标准规范。第三个优点是在标准之外增加了若干有用的扩展,如rope(增强的字符串类)、slist(单链表数据结构)、hash_map(散列映射容器),以及支持线程安全。


第2章 时间与日期

2.1 timer库概述

timer是一个很小的库,提供简易的度量时间和进度显示功能,可以用于性能测试等需要计时的任务,对于大多数的情况它足够用。

timer不适合高精度的时间测量任务,它的精度依赖于操作系统或编译器,难以做到跨平台。timer也不适合大跨度时间段的测量,可提供的最大时间跨度只有几百个小时,如果需要以天、月甚至年作为时间的单位则不能使用timer,应转向date_time库。

2.3 progress_timer

progress_timer也是一个计时器,它继承自timer,会在析构时自动输出时间,省去了timer手动调用elapsed()的工作,是一个用于自动计时相当方便的小工具。只要声明progress_timer对象,对象析构时,会自动输出流逝的时间。如果要在一个程序中测量多个时间,可以运用花括号{}以限定progress_timer的生命期。

2.4 progress_display

progress_display可以在控制台上显示程序的执行进度,如果程序执行很耗费时间,那么它能够提供一个友好的用户界面,不至于让用户在等待中失去耐心、甚至怀疑程序的运行是否出了问题。


3章 内存管理

3.1 smart_ptr库概述

计算机系统中资源有很多种,内存是我们最常用到的,此外还有文件描述符、socket、操作系统handle、数据库连接等等,程序中申请这些资源后必须及时归还系统,否则就会产生难以预料的后果。

newdelete以及指针的不恰当运用是C++中造成资源获取/释放问题的根源,能否正确而明智地运用delete是区分C++新手与熟手的关键所在(常用的做法是在每个离开作用域的return语句前调用delete,并且使用try捕获所有可能发生的异常,然后在catch块中调用delete)。


第7章 容器与数据结构

容器是STL中最引人注意的部分,vectordequelistsetmap分别实现了最常用的动态数组(向量)、双端队列、双向链表、集合和映射五种数据结构。


第9章 数学与数字

从纯数学的角度看,程序也不过是一个非常大的整数而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值