1. boost库
Boost库由
Boost社区组织开发、维护,目的是为C++程序员提供免费、同行审查的、可移植的程序库。
可以与C++库完美共同工作,并且为其提供扩展功能。
Boost库功能强大、构造精巧、跨平台、开源并且完全免费,使用了许多现代C++编程技术,内容涵盖字符串处理、正则表达式、容器与数据结构、并发编程、函数式编程、泛型编程、设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简洁、优雅、灵活和高效。
部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。
有名的数据库:
Regex:正则表达式库
Spirit:LL parser framework,用C++代码直接表达EBNF
Graph:图组件和算法
Lambda:在调用的地方定义短小匿名的函数对象,很实用的functional功能
concept check:检查泛型编程中的concept
Mpl:用模板实现的元编程框架
Thread:可移植的C++多线程库
Python:把C++类和函数映射到Python之中
Pool:内存池管理
smart_ptr:智能指针
2. VS2010中使用Boost环境搭建
1.下载Boost库
Boost官网下载(最新版本是1.57.0):
下载地址
2. 解压缩、编译
1)解压缩到你想要的目录。如C:\Program Files\boost_1_57_0, 具体参照官网的
指南文件;
2)编译(有些库可直接包含头文件即可使用,可暂不编译):
C:\Users\Administrator>cd "C:\Program Files\boost_1_57_0"
C:\Program Files\boost_1_57_0>bootstrap
C:\Program Files\boost_1_57_0>.\b2
3. VS添加相关目录
1) 添加“附加包含目录”
属性->C/C++->常规->附加包含目录
2) 添加“库目录“
属性-> VC++目录 -> 库目录
4. 代码测试
#include <boost/lambda/lambda.hpp>
#include <boost/regex.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
void TestBoost()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " " );
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;
}
}