随笔分类 -  C/C++笔记

摘要:条款3:使容器里对象的拷贝操作轻量而正确STL中采用的都是拷贝对象的方式如果所有这些使STL的拷贝机制听起来很疯狂,就请重新想想。是,STL进行了大量拷贝,但它通常设计为避免不必要的对象拷贝,实际上,它也被实现为避免不必要的对象拷贝。和C和C++内建容器的行为做个对比,下面的数组:Widget w[maxNumWidgets];// 建立一个大小为maxNumWidgets的Widgets数组// 默认构造每个元素即使我们一般只使用其中的一些或者我们立刻使用从某个地方获取(比如,一个文件)的值覆盖每个默认构造的值,这也得构造maxNumWidgets个Widget对象。使用STL来代替数组,你 阅读全文
posted @ 2012-07-11 23:07 Mr.Rico 阅读(524) 评论(0) 推荐(1) 编辑
摘要:第1讲 打磨工具 1. C++/CLI与C++是不同的 第2讲 阅读C++代码 1.核心语言与标准库 C++与C以及其他很多语言类似,区分核心语言与标准库。核心语言和标准库都是标准语言的一部分,不包含这二者的工具套件是不完整的。 二者的区别在于核心语言是自包含的。例如,有些类型是语言内建的,编译器对其提供内在的支持,而其他类型是通过内建类型来定义的,他们在标准库中声明,使用时需要通知编译器将其导入。 第3讲 整数表达式 第17讲 字符集 1. 单词计数:将单词限定为字母和类字母的字符 代码如下:View Code #include#include#include#includeusingnam 阅读全文
posted @ 2012-07-09 18:53 Mr.Rico 阅读(499) 评论(0) 推荐(1) 编辑
摘要:第5章 lexical_cast介绍 测试代码: View Code #include#include#includeusingnamespacestd;usingnamespaceboost;voidtest1(){intx=lexical_cast("100");longy=lexical_cast("2000");floatpai=lexical_cast("3.14159e5");doublee=lexical_cast("2.71828");cout(456);cout(0.6810)(0x10)#inc 阅读全文
posted @ 2012-07-09 00:00 Mr.Rico 阅读(1340) 评论(0) 推荐(1) 编辑
摘要:第0章 导读 第1章 Boost程序库总论 1.什么是Boost 2. 如何使用Boost 3.什么是STLprot 4.开发环境 第2章 时间与日期 1. timer库 代码如下:View Code #include#includeusingnamespacestd;usingnamespaceboost;intmain(){timert;cout#include#include#include#includeusingnamespacestd;usingnamespaceboost;intmain(){vectorv(1000000);ofstreamfs("a.txt" 阅读全文
posted @ 2012-07-06 18:11 Mr.Rico 阅读(3057) 评论(0) 推荐(1) 编辑
摘要:第17章 string基本字符序列容器 string常用 的函数http://www.cplusplus.com/reference/string/string/ 第18章 stack堆栈容器堆栈是一种适配器 堆栈的实现 由于C++ STL中堆栈是不预设大小的,所以在入栈的时候就不考虑堆栈空间是否为满,均将元素压入到堆栈,从而函数没有标明入栈成功与否的返回值。stack容器函数http://www.cplusplus.com/reference/stl/stack/ 第19章 queue队列容器 queue源代码 queue容器函数http://www.... 阅读全文
posted @ 2012-06-29 18:19 Mr.Rico 阅读(437) 评论(0) 推荐(0) 编辑
摘要:第3篇 C++ STL 容器技术SGI STL代码主页:http://www.sgi.com/tech/stl/ 第6章 vector向量容器 stl_vector.h源代码vector常用的函数http://www.cplusplus.com/reference/stl/vector/ 第7章 deque双端队列容器 deque容器使用http://www.cpluspl... 阅读全文
posted @ 2012-06-29 12:52 Mr.Rico 阅读(567) 评论(0) 推荐(0) 编辑
摘要:第1章 C++编程技术1.6 显示类型转换 4种显示类型转换的原型reinterpret_cast转换: const_cast转换: static_cast转换: dynamic_cast转换: 1.7 C++中的异常处理 多个try块与catch块的对应 捕捉任意类型的异常 异常类型列表,声明不抛出异常的情况违反异常类型列表抛出异常 另一种常用异常处理方法:继续抛出异常,让调用者处... 阅读全文
posted @ 2012-06-29 11:23 Mr.Rico 阅读(1086) 评论(0) 推荐(0) 编辑
摘要:第8章 仿函数(函数对象)第9章 STL算法9.1 非变动性算法string搜寻函数与STL搜寻算法的比较变动性算法排序算法几种排序算法的比较;第10章 特殊容器/容器适配器第11章 stringstring和C-string的关系第13章 以stream class来输入输出IOSTream中的一些操控器 阅读全文
posted @ 2012-06-28 00:42 Mr.Rico 阅读(150) 评论(0) 推荐(0) 编辑
摘要:第5章 STL标准模板库5.1 STL中的各个组件STL的基本观念就是将数据和操作分离。而这种将数据和算法分开对待的考虑和面向对象的思想是矛盾的。5.2 容器序列容器Sequence containers和关联式容器Assocative containers严格来说,C++标准并未定义某一种容器的具体实现,然而标准却规定了对其行为和复杂度的要求,这让库的作者没有太多变化的余地。所以实际上各个实际版本之间只是在细节上有所差异。STL中的插入迭代器测试三种迭代器的代码:#include<iostream>#include<vector>#include<list> 阅读全文
posted @ 2012-06-28 00:34 Mr.Rico 阅读(176) 评论(0) 推荐(0) 编辑
摘要:序言侯捷译序C++98标准之后,C++标准库进行了很大的扩充,STL被C++标准库。侯捷的STL三个阶段:String,IOSTREAM和Locale程序库第2章 C++及其标准程序库简介string和STL的不同设计原则,IOSTREAM库模板函数必须在头文件中以inline函数的形式来实现。这是由模板的特点所决定的。模板参数Notype Template参数 (非类型模板参数)Default Template参数(缺省模板参数)异常处理,其中涉及到stack unwinding(堆栈辗转开解)C++标准异常类别explicit禁止隐式转换的产生C++标准手册中的复杂度amortized(分 阅读全文
posted @ 2012-06-28 00:12 Mr.Rico 阅读(256) 评论(0) 推荐(0) 编辑
摘要:一、STL 概述1.1 C++标准库高级程序设计语言希望尽可能减少程序员的重复工作,因此提供了各种抽象机制降低程序复杂性。在程序设计实践中积累了许多经验和代码,充分利用这些经验和代码是降低程序复杂性的有效途径。程序设计语言必须提供代码重用的机制。一般而言有源代码级别的重用和二进制代码级别的重用两种机制,源代码级别的重用非常简单,只需要将源代码一起编译即可。但是许多时候源代码丢失或者厂商不愿意公开源代码,只有二进制代码可用,此时程许多程序设计语言提供了标准库和相应的库管序设计语言应该提供重用二进制代码的机制。理机制,通过标准库用户可以使用常用的算法和数据结构,通过库管理机制用户可以使用第三方的库 阅读全文
posted @ 2012-06-16 16:18 Mr.Rico 阅读(3816) 评论(0) 推荐(1) 编辑
摘要:第5条 一个实体应该只有一个紧凑的职责 第9调 避免进行不成熟的劣化 第14条 宁要编译时和连接时错误,也不要运行时错误 第17条 避免使用魔数 第27条 优先使用算术操作符和赋值操作符的标准形式 第28条 优先使用++和--的标准形式。优先调用前缀形式 第29条 要避免提供隐式转换 第44条 优先编写非成员非友元函数 第46条 如果提供专门的new,应该提供所有标准形式(普通,就地和不抛出) 第49条 避免在构造或析构函数中调用虚函数第50条 将基类析构函数设为公用且虚拟的,或者保护且非虚拟的 第53条 显式的启用或禁止复制 第61条 不要在头文件中定义具有链接的实体 第62条 理智地... 阅读全文
posted @ 2012-04-28 17:22 Mr.Rico 阅读(699) 评论(0) 推荐(0) 编辑
摘要:这本书应该是为那些有中级C++程序员准备 的,里边的内容都是很高级的 ,讲得很深入,需要好好的读。我现在只是简单浏览一遍,以后接触C++多了有了自己的 想法之后,可以再好好的看一下这本书。第1章抽象第2章类 第3章 句柄 第4章 继承 第5章 多重继承 第6章 考虑继承的设计 第7章 模板 第8章 模板的高级用法 第9章 重用 第10章 异常 第11章 迁移到C++ 阅读全文
posted @ 2012-04-28 15:38 Mr.Rico 阅读(851) 评论(0) 推荐(0) 编辑
摘要:条款2 多态 条款4 STL 条款5 引用是别名而非指针 条款10 常量成员函数的含义 条款11 编译器会在类中放东西 条款14 函数指针 条款15 指向类成员的指针并非指针 条款32 禁止复制 条款34 禁止或强制使用堆分配 条款36 特定类的内存分配pic14 条款42 智能指针pic15 阅读全文
posted @ 2012-04-26 15:09 Mr.Rico 阅读(275) 评论(0) 推荐(0) 编辑
摘要:林锐博士的这本书写的非常的好,很多知识点都讲得非常透彻。是学习C++必须看的一本书。第3章 程序的基本概念1. 语言中的I/O接口pic1 2. 语言的实现pic2,3 3. 程序库pic4 4. 开发环境pic5 第4章 C/C++程序入门1. 启动函数mainpic'6,7 2.编译时与运行时pic8 3. 编译单元与独立编译pic9 4. C与C++中NULL的不同pic10 5. C中in... 阅读全文
posted @ 2012-04-19 23:35 Mr.Rico 阅读(1115) 评论(0) 推荐(0) 编辑
摘要:个人觉得这本书特别不错,它讲了一些C++中容易被忽视的设计陷阱。我觉得这本书还是挺深的感觉,如果对C++不熟悉的话,里边的东西可能很难搞懂。我也是只看了前5章,后面的内容比较高级了,有些内容不好理解。强烈对C++有基础的IT同仁可以好好看看,对于提高C++水平还是很有帮助的。第1章 基本问题1. 重载与默认初始化重载通常用于指出一组函数虽然具有相同的抽象含义,但实现不同。默认初始化通常是为了方便,它为函数提供了简化的接口。重载和默认参数初始化是不同的语言功能,它们具有不同的使用目的和行为。要仔细区分。 2. 误解引用 3.无法区分访问和可见性 4. C++中被误用的语法 5. C++中空指针的 阅读全文
posted @ 2012-04-19 21:21 Mr.Rico 阅读(826) 评论(0) 推荐(0) 编辑
摘要:这本书是C++创始人写的一本书,主要介绍了C++语言的演化过程,包括C++中的众多各种特征是如何引入进来的,包括为什么要在C语言上而不是其他语言上进行改进。看了很多C++的基础书籍之后可以考虑看看这个,因为可以让你了解事情的原委。前言 引言 C++时间表 程序设计语言 第1章 C++史前时代1.simula与 分布式系统 2. C与系统程序设计除了C语言的特殊语言技术细节之外,其中有关系统程序设计语言的普遍性思想对C++的成长至少也产生了同样深刻的影响。 第2章 带类的C1. 抽象机制,通用性语言 2. 效率问题pic4 3. C中的低级操作 4. 带类的C特征概览 5. 链接类型 6. 朴实 阅读全文
posted @ 2012-04-14 22:11 Mr.Rico 阅读(2168) 评论(0) 推荐(0) 编辑
摘要:这本书的内容很多,包括了C语言和C++语言。C语言的介绍还算详细,例子也很详细。因为之前看了很多关于C的书了,所以这儿很多内容都略过了。第1章 计算机、Internet和万维网导论1. 著名的高级语言 2. Java语言 3. Basic语言 4. 摘要 第5章函数1. 随机数 2. register存储类型 3.标识符作用域的规定 4. 位域 阅读全文
posted @ 2012-04-12 21:23 Mr.Rico 阅读(366) 评论(0) 推荐(0) 编辑
摘要:《C++编程思想:第2卷》主要是介绍的标准C++中一些比较高级的功能,包括异常处理,模板,标准库算法,容器,运行时类型信息RTTI。最后还包括两部分,设计模式和并发。这两部分是挺好的。但是,我现在对设计模式和并发也了解的不多,所以,现在是这两部分略过先,等以后有时间再回过头来学习设计模式和并发。第1章 异常处理1. C语言中 的异常处理 2. 什么时候不使用异常规格说明 3. 异常安全 4. 不要让析构函数抛出异常 5. 异常开销 第2章 防御性编程第3章 深入理解字符串1. 字符串内部是什么 第4章 输入输出流1. 按行输入文本 第5章 深入理解模板1. 模板元编程 2. 编译时编程 编译时 阅读全文
posted @ 2012-04-11 13:28 Mr.Rico 阅读(591) 评论(0) 推荐(0) 编辑
摘要:开始读这本书的前两章,给我的感觉就是这本书没有像大家说的那么好的,说实话,很差,等到了大约第5章以后,特别是后面,我觉得这本书确实非常的好。它对一些重点给出了很好的剖析。但是我觉得这本书不适合入门,适合你了解C++,然后进行查缺补漏,对一些知识点更深入的了解。入门还得《C++ primer》。C++编程思想:第1卷第1章 1. 动态绑定 2. 为什么C++会成功 3. C++的效率 第2章 对象的创建与使用1. 解释器 2. 编译器 3. 静态类型检查 4. 秘密的附加模块 第3章 C++中的C1. C++显示类型转换 第5章 隐藏实现1. C++是混合产品,非纯面向对象语言 2. 减少重复编 阅读全文
posted @ 2012-04-10 23:33 Mr.Rico 阅读(1989) 评论(0) 推荐(0) 编辑