代码改变世界

随笔档案-2015年08月

boost--序列化库serialization

2015-08-31 07:56 by rangers, 10395 阅读, 收藏,
摘要: 序列化可以把对象转化成一个字节流存储或者传输,在需要时再回复成与原始状态一致的等价对象。C++标准没有定义这个功能。boost.serialization以库的形式提供了这个功能,非常强大,可以序列化C++中各种类型,而且简单易用。 boost.serialization库必须编译后才能使用。有关... 阅读全文

boost--smart_ptr库

2015-08-27 23:03 by rangers, 425 阅读, 收藏,
摘要: C++没有类似Java、C#等语言的垃圾回收机制,内存管理是最为头痛的工作。 new、delete以及指针的不恰当运用是C++中造成资源获取/释放问题的根源。 智能指针是解决这些问题的一种方案,boost.smart_ptr库提供了六种智能指针,包括: `scoped_ptr`、 `scope... 阅读全文

boost库的使用

2015-08-26 23:49 by rangers, 1794 阅读, 收藏,
摘要: ### 使用boost静态库boost静态库的使用方式很简单,在vs工程中设置好boost库头文件的目录以及库文件所在的目录。 使用时引入对应的头文件即可,boost的auto-link机制将会自动帮我们包含对应的静态lib。 一个比较有用的宏: #define BOOST_LIB_DIAGN... 阅读全文

windows下编译和安装boost库

2015-08-26 08:15 by rangers, 16234 阅读, 收藏,
摘要: > boost是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库。 ### 获取方式 boost提供源码形式的安装包,可以从[boost官方网站](http://http://www.boost.org)下载,目前最新版本是1.59.0。![boost_download](http... 阅读全文

C++正则表达式

2015-08-24 00:38 by rangers, 5283 阅读, 收藏,
摘要: > 正则表达式是处理文本强有力的工具,它使用一套复杂且完善的语法规则,能够解决文本处理领域的绝大多数问题,诸如验证、匹配、查找、替换等等,而这些问题用通常的字符串算法是很难解决的。 C++11正式加入了regex库,下面通过几个简单的例子介绍一下`regex`库的使用。 有关正则表达式的语法知识... 阅读全文

std::bind学习

2015-08-20 00:27 by rangers, 1999 阅读, 收藏,
摘要: ### std::bind bind是对C++98标准中函数适配器bind1st/bind2nd的泛化和增强,可以适配任意的可调用对象,包括函数指针、函数引用、成员函数指针和函数对象。 `bind`接受的第一个参数必须是一个可调用的对象f,可以是函数、函数指针、函数对象和成员函数指针,之后接受的参... 阅读全文

STL学习笔记--特殊容器

2015-08-14 14:01 by rangers, 359 阅读, 收藏,
摘要: ### 容器配接器 (1) stack 栈 后进先出(LIFO), 头文件`#include` template > class stack { // LIFO queue implemented with a container ...可以看出,stack内部缺省使用deque实现。可以使... 阅读全文

STL学习笔记--算法

2015-08-14 01:19 by rangers, 286 阅读, 收藏,
摘要: 关于STL算法需要注意的是: (1) 所有STL算法被设计用来处理一个或多个迭代器区间。第一个区间通常以起点和终点表示,至于其他区间,多数情况下只需提供起点即可,其终点可自动以第一区间的元素数推导出来,故调用者必须确保区间的有效性。 (2) STL算法采用覆盖模式(overwrite),而非安插... 阅读全文

STL学习笔记--各种容器的运用时机

2015-08-09 23:14 by rangers, 284 阅读, 收藏,
摘要: ### 如何选择最佳的容器类别?* 缺省情况下应该使用vector。vector的内部结构简单,并允许随机存取,所以数据的存取十分方便灵活,数据的处理也够快。* 如果经常要在序列的头部和尾部安插和移除元素,应采用deque。此外vector通常采用一个内存区块来存放元素,而deque采用多个区块,所... 阅读全文

STL学习笔记--关联式容器

2015-08-09 20:40 by rangers, 283 阅读, 收藏,
摘要: 关联式容器依据特定的排序准则,自动为其元素排序。缺省情况下以`operator, class _Alloc = allocator > class set ...从set的原型声明可以看出,在实例化一个set的时候需要指定一个排序准则,如果没有传入特别的排序准则,就采用缺省准则 `less`--这是... 阅读全文

STL学习笔记--序列式容器

2015-08-09 16:39 by rangers, 363 阅读, 收藏,
摘要: ### 1、vectorvector是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。故可以将vector看作动态数组。 在创建一个vector后,它会自动在内存中分配一块连续的内存空间进行数组存储,初始的空间大小可以预先指定也可以由vector默认指定,这个大小即`capac... 阅读全文

STL学习笔记---STL简介

2015-08-09 00:10 by rangers, 406 阅读, 收藏,
摘要: ### 1.概述STL是通用类模版和算法的集合,它提供给程序员一些标准的数据结构和算法的实现。STL三大关键组成: * **容器(Containers)**,用来管理类对象的集合* **迭代器(Iterators)**,用来在一个对象群集的元素上进行遍历动作。迭代器的主要好处是,为所有容器提供... 阅读全文

使用Markdown写博客

2015-08-08 16:00 by rangers, 316 阅读, 收藏,
摘要: ### 初识Markdown> Markdown是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿这广泛使用。Markdown的设计目标是「易读易写」,语法十分简单,常用的标记符号不超过十个,对于HTML标记语言来说,Markdown可谓十分轻量的,学习成本也不需要太多,且... 阅读全文