boost的简介与安装

简介

boost是一套开放源代码的,高度可移植的C++库。它相当于C++标准库(STL)的改进与扩展。并且,它其中的不少模块,已被下一代C++标准库采用。的确,boost库非常注重与C++标准库之间协同性,用户对STL的许多学习或使用的体验,在接触boost时,会很自然地“似曾相识”。

定位上,boost 库希望自己是一个可用于广泛的、不同业务方向的应用都能使用的基础库——这完全和STL的定义一致,但STL太过于基础了,我们来做一个比较吧。

首先,boost是一个基础库。boost不像wxWidgets那样具备一个明确的业务方向:GUI(虽然wxWidgets也提供了众多其它功能)。boost提供的功能偏向基础设施,所以它的应用目标更为广泛。

然后,boost和STL比较,STL作为C++必须实现的标准库,它几乎就是在提供成型的,可复用的“数据结构”与“算法”的大全。boost,特别是2008年发布的1.36版,提供了大量高级功能。当前包括:“正则表达式”、“线程”、“网络”、“数学”、“图(数学)”、“字符串”、“CRC校验”、“文件”、“日期、时间”、“图(图形处理)”等等模块。

如果在不同语言之间做横向比较,那么我们会发现,Java和C# (.NET)语言,它们的标准库所提供的功能无比广泛,而C++的标准库则相当可怜——甚至连“线程”都没有提供。boost库非常好地弥补了C++的这一点不足。

和STL类似,boost大量采用现代C++的泛型编程技术。因此多数模块,我们在使用时,仅仅需要引用其“头文件”;另外有10来个必须或者建议进行编译的模块——但本书下面的教程并没有对这10来个库进行完整编译——至少有两个原因:其一、我们并不立即就用到全部的boost库;其二、如果完整编译,需要使用的时间,可能长达5个小时。

安装

VS2005下编译boost
1.启动VS2005,在Tool菜单中选择“Visual Studio 2005 Command Prompt“VS会启动命令提示符窗口,并自动设置好相应的环境变量。
2.转到<boost>/libs/regex/build目录下(<boost>是你存放boost代码的路径),运行以下命令即可进行编译,这个过程可能会比较久:
nmake -f vc8.make
3.运行以下命令进行安装,boost会把上一步产生的lib文件等拷贝到你的VC目录下。
nmake -f vc8.make install
4.最后清除安装时产生的临时文件:
nmake -f vc8.make clean
OK,大功告成!可以享用正则表达式带来的强大威力了!
现在找到regex程序小试一下:
实现一个简单的split功能
#include <list>
#include <iostream>
#include <boost/regex.hpp>
using namespace std;
unsigned tokenise(std::list<std::string>& l, std::string& s)
{
   return boost::regex_split(std::back_inserter(l), s);
}
int main()
{
   string s = "i am a boy!";
   list<string> l;
   unsigned result = tokenise(l, s);
   cout << result << " tokens found" << endl;
  
   while(l.size())
   {
   s = *(l.begin());
   l.pop_front();
    cout << s << endl;
   }
   return 0;
}
运行成功!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值