boost库学习

从www.boost.org下载,也可以从国内镜像boost.c-view.org下载,我下载的版本是1.31,好象1.32快要出了。直接 下载后解压出来即可使用,编译的时候必须把boost的路径加到命令行里。boost的大部分组件都可以直接使用,另外有一些组件因为平台的原因需要编译 库,暂时我还没有自己编译过库。

lexical_cast

lexical_cast用来做类型转换,可以是字符串->数值,也可以是数值->字符串。用法很简单, 字符串转换到数值的时候,先包含头文件#include <boost/lexical_cast.hpp>,然后如下使用:int a = boost::lexical_cast<int>("123");即可以将字符串"123"转换为int型的123。

数组->字符串的转换也一样,比如string s = boost::lexical_cast<string>(123.12);

如果转换失败,会有bad_lexical_cast异常抛出,该类是bad_cast的子类。

boost依赖于字符流std::stringstream,它的原理是将源类型读入到字符流中,再写到目标类型中。

lexical_cast不仅仅局限于字符串和数值类型之间的转换,可在任意可输出到stringstream的类型和任意可从stringstream输入的类型间转换。

timer

boost提供了timer类用于计时,另外还有计时器时间报告类progress_timer和进度条显示类progress_display。

timer类包含在头文件boost/timer.hpp中,progress_timer和progress_display类都包含在boost/progress.hpp中。

timer类测量程序耗用时间,它使用了标准库的clock()函数,有良好的移植性,但代价却是精度不高。

progress_timer类自动测量程序耗费时间,在对象时显示耗费时间信息,默认向std::cout输出字符信息。比如在main中生成一个progress_timer的对象t,在程序结束的时间会在屏幕上输出执行的时间。

progress_display类以适当的形式在适当的位置显示进度条。比如在执行一个for循环之臆生成一个对象 progress_display show_progress(10000);然后在执行这个for循环的过程中让这个对象自加:for(int i=0;i<10000;i++){++show_progress;},这样就会边执行边在屏幕上显示进度条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值