
STL
freeboy1015
这个作者很懒,什么都没留下…
展开
-
Boost的转换函数numeric_cast和lexical_cast
Boost的转换函数(二)boost::numeric_cast在c++中,我们经常需要把不同类型的数字互相转换,如将一个数字在long和short之间转换。但由于各数字的精度不同,当一个数字从"大"类型到"小"类型就可能导致转换失败,如下所示:long n1 = 99999999;short n2 = static_castshort>(n1);对于如上转换,n2原创 2012-07-26 10:40:20 · 3638 阅读 · 0 评论 -
如何将原有代码转换为资源管理代码 ?
如何将原有代码转换为资源管理代码 如果你是一个经验丰富的程序员,你一定会知道找资源的bug 是一件浪费时间的痛苦的经历。我不必说服你和你的团队花费一点时间来熟悉资源管理是十分值得的。你可以立即开始用这个方法,无论你是在开始一个新项目或者是在一个项目的中期。转换不必立即全部完成。下面是步骤。 首先,在你的工程中建立基本的Strong Pointer。然后通过查找原创 2012-11-29 10:57:22 · 682 阅读 · 0 评论 -
map插入对象小结
前提说明难道插入map还有什么讲究吗?我们且看map在STL中的定义方法: template , class Alloc = alloc> 第一个参数Key是关键字类型第二个参数T是值类型第三个参数Compare是比较函数(仿函数)第四个参数是内存配置对象 map内部存储机制实际是以红黑转载 2012-11-08 15:38:59 · 713 阅读 · 0 评论 -
STL中的bitset
声明#include using std::bitset;bitset的定义和初始化:bitset32> bitvec; //32位,全为0。给出的长度值必须是常量表达式。正如这里给出的,长度值必须定义为整型字面值常量或是已用常量值初始化的整数类型的const对象。这条语句把bitvec定义为含有32个位的bitset对象。和vector的元素一样,bitset原创 2012-10-16 18:50:58 · 733 阅读 · 0 评论 -
三十分钟掌握STL
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽转载 2012-04-18 09:47:44 · 567 阅读 · 0 评论 -
Boost智能指针——shared_ptr
Boost智能指针——shared_ptrboost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:#include #include #include class转载 2012-07-26 10:20:10 · 560 阅读 · 0 评论 -
Boost智能指针——weak_ptr
Boost智能指针——weak_ptr原文出处:http://www.cnblogs.com/TianFang/archive/2008/09/20/1294590.html循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include #include #include #i转载 2012-07-26 10:15:29 · 653 阅读 · 0 评论 -
Boost的转换函数polymorphic_cast和polymorphic_downcast
Boost的转换函数(一)Boost的转换函数是对C++中的四种类型转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)的一些补充和扩展,在阅读本文前,请先熟悉C++中的四种类型转换函数相关知识。polymorphic_castC++提供了dynamic_cast来实现运行时的类型转换,但是如果用来转换原创 2012-07-26 10:35:04 · 953 阅读 · 0 评论 -
boost1.50在VS2010下的配置
第一步:下载boost,我下载的方法是从http://www.boost.org/上找最新的下载。名字叫boost_1_50_0.7z。第二步:在D盘(我C盘空间不大,准备出至少10G的空间吧)创建一个目录boost,拷贝进去并解压到当前文件夹。第三步:开始->程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual原创 2012-07-26 19:44:10 · 654 阅读 · 0 评论 -
用STL的next_permutation算法实现全排列
1、next_permutation实现原理在《STL源码解析》中找到了这个函数,在此也简单叙述一下原理: 在STL中,除了next_permutation外,还有一个函数prev_permutation,两者都是用来计算排列组合的函数。前者是求出下一个排列组合,而后者是求出上一个排列组合。所谓“下一个”和“上一个”,书中举了一个简单的例子:对序列 {a, b, c},每一原创 2012-09-29 11:19:54 · 1511 阅读 · 0 评论 -
Boost智能指针——scoped_ptr
Boost智能指针——scoped_ptrboost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include #include #include class implementation{public: ~im转载 2012-07-26 10:31:13 · 555 阅读 · 0 评论 -
vector,list,deque区别
stl提供了三个最基本的容器:vector,list,deque。vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率原创 2013-04-12 16:35:47 · 635 阅读 · 0 评论