<Boost> VS2010使用Boost(C++库)
2014-12-23 11:41
435 查看
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; } }
相关文章推荐
- boost综合使用<function,bind,thread,mutex,condition_variable,shared_ptr>
- <Boost> boost::thread 多线程的使用
- <转>学习java反编译工具的使用
- 在使用struts标签时,把<s:if>中的test写成了text
- 为何要使用<merge\>标签
- vs2005中使用'查找和替换'将 (&lt;link &gt;) 替换为 (&lt;link /&gt;)
- fedora 16 使用LiveCD修复grub2引导–<转>
- <转载自刘佳ID:freedom0203和waret> C++中成员初始化列表的使用
- 使用<fstream>库
- 解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题
- ASP.NET中使用<script runat="server">
- <<gdb使用经验技巧>>
- 从外部的js文件中使用<%=%>获取ASPX页面的ClientID获取后台代码
- <shape>的使用
- android_应用开发之(使用<include>标签重用布局)
- <备忘1000> ffmpeg命令行使用例子
- VS2010使用扩展方法对List<T>进行随机排序
- Maatkit工具使用<一>之mysql主从数据校验工具
- JSP标签的<jsp:useBean>和<jsp:setProperty><jsp:getProperty>的使用
- android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框