- 博客(19)
- 资源 (11)
- 收藏
- 关注
原创 unordered
散列容器(hash container): 通常比二叉树的存储方式可以提供更高的访问效率.#include #include using namespace boost;散列集合简介: unordered库提供两个散列集合类unordered_set和unordered_multiset,STLport也提供hash_set和hash_multiset,它们的接口,用法与s
2012-11-29 16:46:38 28450 1
原创 boost dynamic_bitset
dynamic_bitset: c++98标准为处理二进制数值提供了两个工具:vector和bitset.vector是对元素类型为bool的vector特化,内部并不真正存储bool值,而是以bit来压缩保存,使用代理技术来操作bit,造成的后果就是它很像容器,大多数情况下的行为与标准容器一致,但它不是容器,不满足容器的定义。 bitset与vector类似,同样存储二进制位,但它的
2012-11-29 16:45:43 8102
原创 array
容器与数据结构: 容器是stl中最引人注意的部分,vector,deque,list,set,map分别实现了最常用的动态数组(向量),双端队列,双向链表,集合和映射五种数据结构,它们以泛型的形式提供可以容纳任意的类型。 boost程序库,实现了数个新型容器(数据结构),如散列容器,循环队列,多维数组等,大大扩展了“容器”概念的内涵和外延 10个容器(数据结构),首先是array,dy
2012-11-26 17:33:34 1169
原创 boost 正确性与测试
boost.assert库增强了原始的运行时assert宏,static_assert库提供了静态断言(编译期诊断),而boost.test库则构建了完整的单元测试框架.assert: boost.assert提供的主意工具是BOOST_ASSERT宏,它类似c标准中的assert宏,提供运行时的断言。#include 基本用法: 默认情况BOOST_ASSERT宏等同于ass
2012-11-26 16:10:40 5663
原创 boost xpressive
xpressive: 正则表达式是处理文本强有力的工具,它使用一套复杂的语法规则,能够解决文本处理领域的绝大多数问题,如验证,匹配,查找,替换等,这些问题用通常的字符串算法是很难甚至无法解决的。 xpressive是一个先进的,灵活的,功能强大的正则表达式库,提供了对正则表达式的全面支持,而且比原正则表达式库boost.regex要好的是它不需要编译,速度快,同时语法又很类似。两种使用
2012-11-22 11:29:29 6571
原创 boost tokenizer
tokenizer: tokenizer库是一个专门用于分词(token)的字符串处理库,可以使用简单易用的方法把一个字符串分解成若干个单词;#includeuning namespace boost; tolenizer类是tokenizer库的核心,它以容器的外观提供分词的序列。类摘要:template, typename Iterator = std::string:
2012-11-22 11:28:50 4983
原创 boost string_algo
string_algo: std::string符合容器的定义,可以把它看做元素类型为char(或wchar_t)的序列容器,可以使用标准算法来对它进行运算。 string_algo库是一个非常全面的字符串算法库,提供了大量的字符串操作函数,如大小写无关比较,修剪,特定模式的子串查找等,可以再不使用正则表达式的情况下处理大多数字符串相关问题。#includeusing namesp
2012-11-16 17:46:25 3049
原创 boost lexical_cast format
Boost中包括五个字符串与文本处理领域的程序库: 【1】两个与c标准库函数功能类似的lexical_cast和format,它们关注与字符串的表示,可以将数值转化为字符串,对输出做精确的格式化。 【2】string_algo库提供了大量常用的字符串处理函数 【3】tokenizer和xpressive,前者是一个分词器,后者则是一个灵活的正则表达式分析器,同时也是一个语法分析器.
2012-11-16 17:45:47 5071
原创 boost uuid
uuid: uuid库是一个小的使用工具,可以表示和生成UUID UUID是University Unique Identifier的缩写,它是一个128位的数字(16字节),不需要有一个中央认证机构就可以创建全国唯一的标示符。别名:GUID uuid位于名字空间boost::uuisd,没有集中的头文件,把功能分散在了若干小文件中,因此为了使用uuid组件,需要包含数个头文件,即:
2012-11-14 09:53:19 1415
原创 boost utility
utility: utility库不是一个有同意主题的Boost库,而是包含了若干个很小但有用的工具BOOST_BINARY: BOOST_BINARY提供一组宏,用于实现简单的二进制常量表示. BOOST_BINARY的定义位于中,也可以通过间接包含。#include 或者#include 它使用boost.preprocessor预处理元编程工具将一组或多组0
2012-11-14 09:52:42 2306 1
原创 boost uuid
uuid: uuid库是一个小的使用工具,可以表示和生成UUID UUID是University Unique Identifier的缩写,它是一个128位的数字(16字节),不需要有一个中央认证机构就可以创建全国唯一的标示符。别名:GUID uuid位于名字空间boost::uuisd,没有集中的头文件,把功能分散在了若干小文件中,因此为了使用uuid组件,需要包含数个头文件,即:
2012-11-12 18:03:09 17220
原创 boost exception
exception: c++98标准定义了标准异常类std::exception及一系列子类,是整个c++语言错误处理的基础. boost.exception库针对标准库中异常类的缺陷进行了强化,提供#include using namespace boost;标准库中的异常:c++98标准中定义了一个异常基类std::exception和try/catch/throw异常
2012-11-12 18:02:22 11852
原创 boost operators
operators: 很多操作符可以从其他的操作符自动推导出来,例如a!=b可以是!(a==b),a>=b可以是!(a 在C++98标准的std::rel_ops名字空间里提供了四个模板比较操作符!=,>,=,只需要为类定义了==和示例:#include #include #include #include #include using namespace bo
2012-11-12 18:01:46 3600
原创 boost tribool
tribool: boost.tribool类似c++内置的bool类型,但基于三态的布尔逻辑:在true和false之外还有一个indeterminate状态(未知,不确定).#include using namespace boost;tribool类内部实现了三态bool值的表示,除了构造函数没有什么其他成员函数,可以再创建tribool对象的同时传入三态bool值对它进行初
2012-11-08 17:28:29 5130
原创 boost swap
swap: boost::swap是对标准库提供的std::swap的增强和泛华,为交换两个变量(可以是int等内置数据类型,或者是类实例,容器)的值提供了便捷的方法.#include 原理:c++标准中的std::swap()//std::swap的典型实现,具体代码依STL版本而不同void swap(T& a, T& b){ T tmp(a); a = b
2012-11-08 17:28:03 3116
原创 boost optional
optional: optional库使用"容器"语义,包装了"可能产生无效值"的对象,实现了"未初始化"的概念.#include using namespace boost;"无意义"的值: 函数并不总能返回有效的返回值,很多时候函数可能返回"无意义"的值,这不意味着函数执行失败,而是表明函数正确执行了,但结果却不是有用的值。 表示返回值无意义最常用的做法是增加一个"哨兵
2012-11-08 17:27:35 16574
原创 boost assign
assign: 许多情况下我们都需要为容器初始化或者赋值,填入大量的数据,比如初始错误代码和错误信息,或者是一些测试用的数据。STL容器仅提供了容纳这些数据的方法,但填充的步骤却是相当地麻烦,必须重复调用insert()或者push_back()等成员函数,这正是boost.assign出现的理由. assign库重载了赋值操作符,operator+=,逗号操作符operator,和括号操
2012-11-08 17:25:01 2320
原创 boost typeof
typeof: typeof库使用宏模拟了c++0x新增加的typeof和auto关键字,可以减轻书写烦琐的变量类型声明的工作,简化代码包含头文件:#include动机:c++是一种静态强类型语言,所有变量在使用前都必须声明其类型,这使得c++具有运行速度快,代码规范等很多优点,但有的时候,这个优点却是麻烦的来源--尤其是c++引入名字空间特性胡--会导致烦琐的类型声明。考
2012-11-06 17:21:52 4296
原创 boost noncopyable
noncopyable: noncopyable允许程序轻松地实现一个禁止复制的类. noncopyable位于名字空间boost,为了使用noncopyable组件,需要包含头文件或者,后者包含了数个小工具的实现:#include 或者#include 在c++中定义一个类时,如果不明确定义拷贝构造函数和拷贝赋值操作符,编译器会为我们自动生成这两个函数.例如:class
2012-11-06 17:21:10 5060
网络拨号程序同步方式网络拨号程序简单类 可以参考 自己学着写
2009-08-20
详解卷TCP-IP详解卷1
2009-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人