[转载]boost库的简单介绍

[C/C++] -- Boost、Muduo编译安装使用 Muduo 是一个基于 C++11 的高性能网络,其核心是事件驱动、非阻塞 I/O、线程池等技术,以实现高并发、高性能的网络通信。 阅读详情
boost库的简单介绍

      boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。  STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。

      boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。 有一些库是跨类别包含的,就是既属于这个类别又属于那个类别。

      在文本处理部分,conversion/lexcial_cast类用于“用C++”的方法实现数字类型和字符串之间的转换。 主要是替代C标准库中的 atoi、 itoa之类的函数。当然其中一个最大的好处就是支持泛型了。

       format库提供了对流的“printf-like”功能。printf里使用%d、%s等等的参数做替换的方法在很多情况下还是非常方便的,STL的iostream则缺乏这样的功能。format为stream增加了这个功能,并且功能比原始的printf更强。

       regex,这个不多说了,正则表达式库。如果需要做字符串分析的人就会理解正则表达式有多么有用了。

       spirit,这个是做LL分析的框架,可以根据EBNF规则对文件进行分析。(不要告诉我不知道什么是EBNF)。做编译器的可能会用到。一般人不太用的到。

       tokenizer库。我以前经常在CSDN上看到有人问怎么把一个字符串按逗号分割成字符串数组。也许有些人很羡慕VB的split函数。现在,boost的tokenizer也有相同的功能了,如果我没记错的话,这个tokenizer还支持正则表达式,是不是很爽?

       array: 提供了常量大小的数组的一个包装,喜欢用数组但是苦恼数组定位、确定数组大小等功能的人这下开心了。

       dynamic_bitset,动态分配大小的bitset,我们知道STL里有个bitset,为位运算提供了不少方便。可惜它的大小需要在编译期指定。现在好了,运行期动态分配大小的bitset来了。

       graph。提供了图的容器和相关算法。我还没有在程序中用到过图,需要用的人可以看看。

       multi_array提供了对多维数组的封装,应该还是比较有用的。

      并发编程里只有一个库,thread,提供了一个可移植的线程库,不过在Windows平台上我感觉用处不大。因为它是基于Posix线程的,在Windows里对Posix的支持不是很好。

      接下来的 数学和数值 类里,包含了很多数值处理方面的类库,数学类我也不太熟,不过这里有几个类还是很有用的,比如rational分数类,random随机数类,等等。

      static_assert,提供了编译器的assert功能。

      test库,一个单元测试框架,非常不错。

      concept_check提供了泛型编程时,对泛型量的一点检查,不是很完善,不过比没有好。

     数据类型类any,一个安全的可以包含不同对象的类。把它作为容器的元素类型,那么这个容器就可以包含不同类型的元素。比用void *要安全。

     compressed_pair,跟STL里的pair差不多。不过对空元素做了优化。

     tuple,呵呵,也许是某些人梦寐以求的东西。可以让函数返回多个值。

     跨语言支持:python,呵呵,好东东啊,可以将C++的类和函数映射给python使用。以下为几个CSDN上的关于boost.python的中文资料:http://dev.csdn.net/article/19/19828.shtmhttp://dev.csdn.net/article/19/19829.shtmhttp://dev.csdn.net/article/19/19830.shtmhttp://dev.csdn.net/article/19/19831.shtm

    pool:内存池,呵呵,不用害怕频繁分配释放内存导致内存碎片,也不用自己辛辛苦苦自己实现了。

    smart_ptr:智能指针,这下不用担心内存泄漏的问题了吧。不过,C++里的智能指针都还不是十全十美的,用的时候小心点了,不要做太技巧性的操作了。

    date_time,这个是平台、类库无关的实现,如果程序需要跨平台,可以考虑用这个。

    timer,提供了一个计时器,虽然不是Windows里那种基于消息的计时器,不过据说可以用来测量语句执行时间。

    uitlity里提供了一个noncopyable类,可以实现“无法复制”的类。很多情况下,我们需要避免一个类被复制,比如代表文件句柄的类,文件句柄如果被两个实例共享,操作上会有很多问题,而且语义上也说不过去。一般的避免实例复制的方法是把拷贝构造和operator=私有化,现在只要继承一下这个类就可以了,清晰了很多。

     value_initialized:数值初始化,可以保证声明的对象都被明确的初始化,不过这个真的实用吗?似乎写这个比直接写初始化还累。呵呵,仁者见仁了。

    这里面除了regex、python和test需要编译出库才能用,其他的大部分都可以直接源代码应用,比较方便。其实这些库使用都不难。最主要的原因是有些库的使用需要有相关的背景知识,比如元编程、STL、泛型编程等等。

转载自“令狐虫的无聊空间”

.Net中的打印A4纸如何实现(以C#为例) VB中的Printer.Print在.Net中如何实现      在VB中,如果要打印打印A4文档,且内容是从DB中,或者DataGrid中等动态获取的,实现起来非常简单,诸如以下代码(rs表示一记录集):       rs.MoveFirst    Printer.PaperSize = VBPRPSA4    Printer.Orientation = VBPRORPo 阅读详情

相关推荐

Boost是一个用于C++编程语言的开源,其中包含了许多常用的数据结构和算法

其中boost::edge_connectivity是一个非常有用的算法,它可以计算图形中所有点对之间的最大边连通度。最后,我们使用edge_connectivity函数计算所有节点对之间的最大边连通度,并将结果打印到屏幕上。综上所述,boost::edge_connectivity是一个非常有用的函数,可用于计算图形中所有点对之间的最大边连通度。在本文的示例中,我们将使用boost::edge_connectivity函数来计算一个简单的无向图中所有点对之间的最大边连通度。

code_welike的博客 163

C++:Boost

Boost是一个功能强大,构造精良,跨越平台,代码开源,完全免费的C++程序。共包含160余个/组件,涵盖字符串文本处理、容器、迭代器、算法、图像处理、模板元编程、并发编程等多个领域。由c++标准委员会成员发起倡议并建立boost社区,C++11标准库中三分之二来自boost,并且将来还会有更多的进入c++标准库,因此boost是一个c++ "准"标准库。支持现有的所有操作系统。Boost的大多数组件不需要编译链接,源码里直接包含头文件。(注意:包含头文件的时候需要有boost目录,即。

lingshengxiyou的博客 9559

【C++】开源:Boost常用组件配置使用

boost常用组件使用

DevFrank的博客 4454

C++_开发_Boost开源_介绍_使用

C++_开发_Boost开源_介绍_使用

qq_44681788的博客 8602

[VB.NET源码]实现打印DataGrid列表的示例

从入门到高手,让你21天成为VB.NET高手的源代码哦,我就不必把代码写出来了,你们自己去下载就可以了……不要忘了加我QQ群,收藏我的博客哦!下载地址:实现打印DataGrid列表的示例

VB.NET学习网-VB.NET实例、VB.NET教程、VB.NET源码下载 422

数据表的打印

在VB.NET上写的,代码如下:Imports System.Drawing.PrintingPublic Class PrintDataGrid    Private PrintFont As New Font("宋体", 10)    Private PrintLines As Integer = 50    Private PrintRecordNumber As Integer = 45 

wuyq11的专栏 3178

打印DataGrid的指定的列和行

原文及原代碼地址:http://www.codeproject.com/KB/grid/PrintDataGrid_CS.aspx Download demo project [C#] - 59.1 Kb Download source [C#] - 68.1 Kb Download demo project [VB.NET] - 63.6 Kb

1285

vb6 datagrid表格垂直居中_别再浪费纸啦!Excel打印这样做,表格再大也能打印成一页...

Hello,大家好呀!在打印Excel表格时,你是不是经常碰到过这种情况:明明排版好的表格,结果打印完却发现只显示一半......表格太宽导致无法打印在A4纸上...... 今天小编就来分享几个有效的解决方法,教你轻轻松松将表格打印在一页纸上,一起来看看吧!一、表格打印在一页纸上 1、分页预览❶ 在打印之前,我们先在Excel 里点击右下角的【分页预览】图标。就是这个图标,在表格的右下角❷ 点击之...

weixin_39908616的博客 165

[VB.NET]关于VB.NET的打印功能 高手都跑那里去了?????

<!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"

VB.NET学习网-VB.NET实例、VB.NET教程、VB.NET源码下载 729

[VB.NET]求助!用VB.NE怎么实现TDataGrid的Web打印

<!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"

VB.NET学习网-VB.NET实例、VB.NET教程、VB.NET源码下载 569

vb.net通用打印类 (转)

以下通用类参考了网络资料,整合如下功能: 1、直接打印内存数据表DataTable。附带函数,将DataGrid、ListView和SQL数据表转成DataTable; 2、自动分页功能。根据纸张大小及DataTable行数、打印字体自动计算页数,列均匀分布,自适应纸张; 3、支持标题、页头、页脚打印。 参考资料: http://dns.tlw.cn/12128.htm ===========

WWW.Waner.Net Asp.Net & VB.Net 1835

vb6 datagrid表格垂直居中_WPS表格技巧:打印的内容很少,不能打印在纸张中间区域怎么办?...

当我们打印的内容很少,表格很小的时候,总是印偏怎么办?打印出来表格太小,很不美观怎么办?一起来看以下的解决方法!让表格内容居中打印的设置方法步骤:1.如果是无框的表格,可以先把单元格内容居中或让单元格自适应内容。2.选择要打印的单元格区域,点击“页面布局”——“打印区域”——“设置打印区域”。3.点击“打印预览”,按照实际情况选择“横向(打印)”或“竖向(打印)”,输入缩放比例(数字必须在104...

weixin_39972151的博客 238

vb6 datagrid表格垂直居中_别再浪费A4纸了,Excel按下这个键,一张纸打印所有表格...

大家在日常的工作中,都打印过Excel表格,可是当表格太长或太宽的时候,就无法打印在一张纸上了,非常浪费A4纸。下面我来教大家几种方法,只需要一个键,一张纸就能打印所有表格内容。一、Excel打印一页①调整宽高打开Excel表格,点击【页面布局】选项卡,然后在【调整为合适大小】菜单栏中,设置宽度和高度都为1页,按下快捷键【Ctrl+P】打印预览,可以看到表格打印在一页纸上。②设置分页在Excel表...

weixin_39631301的博客 231

DataGrid技巧大集合

关于datagrid的打印http://www.chinaaspx.com/article/csharp/295.htmC#中为DataGrid添加下拉列表框http://www.cnblogs.com/icesnaker/archive/2004/09/21/45015.aspxDataGrid也玩分页http://dev.csdn.net/article/32/32339.shtmDataGr

C#、Asp.NET、Java 1473

DataGrid资料(转贴 http://www.cnblogs.com/icesnaker/archive/2004/07/31/29017.html)

关于datagrid的打印http://www.chinaaspx.com/article/csharp/295.htmC#中为DataGrid添加下拉列表框http://www.cnblogs.com/icesnaker/archive/2004/09/21/45015.aspxDataGrid也玩分页http://dev.csdn.net/article/32/32339.shtmDataGr

小水的天空 1512

DataGrid资料

关于datagrid的打印http://www.chinaaspx.com/article/csharp/295.htmC#中为DataGrid添加下拉列表框http://www.cnblogs.com/icesnaker/archive/2004/09/21/45015.aspxDataGrid也玩分页http://dev.csdn.net/article/32/32339.shtmDataGr

专栏 914

VS.NET打印思想2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现

VS.NET打印思想2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现 作者:周方勇  文章摘要通过核心的打印二维网格的程序,无论你用的是VS.NET2003还是2005,Data

pkerboy的专栏 958
上一篇: [转载]Boost源码剖析之:型别分类器——type_traits
下一篇: 恭祝各位同仁和自己鸡年快乐!
snaill
博客等级 码龄27年 599粉丝 159原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值