C++语言一个不好用的地方是,提供的库文件较少,很多其它语言可以很方便提供的功能C++都要从底层实现。对此,C++标准委员会的一些成员发起了完成了boost。作为对C++标准的扩展,boost很方便地提供了诸如智能指针、正规则表达式等功能。将来的不久,boost很有可能成C++标准的一部分。
要在C++中使用boost库,必须下载boost并安装。在Windows环境的Visual Studio中,可以很快地将boost装好。安装过程主要有如下一几步:
1、到boost的主页上下载boost安装文件,选择windows版本。
boost下载网址:http://www.boost.org/users/download/
2、解压boost。在解压后文件夹下的index.html包含boost安装使用的一个详细英文说明。boost中一些库不需要编译即可使用,因为这些库只有头文件。但一些功能复杂的库,如正规则表达的库,需要编译成LIB库文件。
3、编译boost。解压的boost文件夹下有一个批处理程序bootstrap.bat,点击即可自动编译。编译过程会比较费时,大约半个小时左右。批处理程序运行成功后,会在当前目录下生成一个stage文件,编译好的LIB文件就在stage/lib下。
4、设置Visual Studio环境。将boost文件夹的路径和上一步编译好的LIB文件夹路径添加到Visual Studio 2005中。设boost文件夹路径:F:boost_1_43_0,编译好的LIB路径:F:boost_1_43_0stagelib。
打开Visual Studio 2005 –> 工具 –> 选项 –> 项目与解决方案 –> VC++目录,
在“包含文件”中,将boost路径:F:boost_1_43_0添加进去
在“库文件”中,将将编译好的LIB路径:F:boost_1_43_0stagelib添加进去。
5、运行示例程序确认boost安装成功。
例1:
#include <boost/lambda/lambda.hpp> #include <iostream> #include <iterator> #include <algorithm> int main() { using namespace boost::lambda; typedef std::istream_iterator<int> in; std::for_each( in(std::cin), in(), std::cout << (_1 * 3) << " " ); }
此例中,从界面输入一个数字,输出这个数字的3倍。
例2:
#include <boost/regex.hpp> #include <iostream> #include <string> int main() { std::string line; boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" ); while (std::cin) { std::getline(std::cin, line); boost::smatch matches; if (boost::regex_match(line, matches, pat)) std::cout << matches[2] << std::endl; } }
输入:
To: George Shmidlap
From: Rita Marlowe
Subject: Will Success Spoil Rock Hunter?
进行测试(正规则表达式)
若boost安装成功,这两个例子应都能成功编译、运行。
一旦boost安装成功,就可以像使用STL那样使用boost中的类型。
原创文章,转载请注明: 转载自点滴成河
Related posts: