- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 STL源码剖析(一)
rotate将[first, middle)内的元素和[middle, last内的元素互换template inline void rotate(ForwardIterator first, ForwardIterator middle, ForwardIterator last) { if (first == middle || middle == last) r
2015-02-15 13:57:06
425
原创 STL--容器
序列抽象族来说:各成员之间的主要区别在性能方面,即性能上的差别决定了是否需要在容器中包含某种操作,我们最重要的任务是理解在何种情况下其中的一种容器优于其他两种有序关系抽象族:集合,多集,映射和多映射之间在操作上有一些本质的区别在性能方面,插入,删除,查找都具有对数时间复杂度向量--->优势:对序列末尾快速插入和删除操作对变长序列的快速随机访问(序
2015-02-14 18:28:13
399
原创 碰到指针相关的小问题
整型指针:int main(void){ int *p; cout << p << endl;}输出:0x0此时指针p指向的内容为0x0;int main(void){ int *p; *p = 5; cout << p << endl;}能编译通过,但此时指针p指向的内容为NULL;i
2015-02-08 14:54:19
459
原创 理一理空类,空数组的相关问题
我们经常会遇到这些问题:(1)C++中定义一个空类,他们它的大小(sizeof)为多少?(2)只有一个char数据成员的类的大小?(3)能否定义一个空数组?(4)空数组名做标示的指针指向什么地方?(5)空类有什么用?(6)空数组有什么用?这些问题,笔者在这篇文章统统做一个解析和认识。 1,sizeof是什么?首先我们要理解sizeof是什么东西?对
2015-02-08 12:34:23
498
原创 变量初始化原则
不合理地初始化数据是产生编程错误的常见根源之一声明变量的时候初始化在靠近变量第一次使用的位置初始化它在可能的情况使用const特别注意计数器和累加器在类的构造函数里初始化该类的数据成员检查是否需要重新初始化使用编译器设置来自动初始化所有变量在程序开始时初始化工作内存,把工作内存初始化为一个已知数值将会有助于发现初始化错误(0是个很好的填充值,因为它会确保那些尚未初始化的指针指向内存低端
2015-02-08 00:31:48
498
转载 名字,作用域和约束
[程序设计语言]-02:名字、作用域和约束(Bindings)阅读导航本系列其他文章目录请戳这里。1.名字、约束时间(Binding Time)2.对象生存期和存储管理2.1静态分配2.2基于栈的分配2.2堆分配和垃圾收集3.作用域规则3.1静态作用域3.2嵌套子程序3.3动态作用域4.引用环境的约束4.1子程序闭包4.2一级和二级子程序
2015-02-01 10:30:01
854
原创 基本编程元素用到的技巧
当你想了解一个函数(或方法)在做什么,你可以如下策略:根据函数名猜测阅读函数头的注释分析函数是如何被使用阅读函数体內的代码查询外部程序文档养成碰到库函数就阅读文档的习惯(传送门如何查看函数)注释是重点啊啊啊!强行观看
2015-01-31 23:29:32
404
转载 再悟-虚函数
C++虚函数和纯虚函数2011-12-04 13:16 by 捣乱小子, 8889 阅读, 3 评论, 收藏, 编辑§写在前面的学习过C++类的继承与多态的时候,但是很多的童鞋回过头来都忘记之中关于虚函数和纯虚函数的细节,甚至将他们混淆。§虚函数虚函数是动态多态性的基础,其调用的方式是动态联编(又称晚期联编,简单解释为只有在程序运行时才决定调用基类的还是子类
2015-01-31 22:47:03
415
转载 再悟-析构函数
C++对析构函数的误解2011-12-09 11:56 by 捣乱小子, 3146 阅读, ... 评论, 收藏, 编辑C++析构前言析构函数在什么时候会自动被调用,在什么时候需要手动来调用,真不好意思说偶学过C++…今日特此拨乱反正。 C++析构误解正文对象在构造的时候系统会分配内存资源,对一些数据成员进行初始化或者赋值;一个良好的class需要有资源回收
2015-01-31 22:15:27
443
原创 再悟-模板
在c++中有两种模板:类模板 和 函数模板类模板举例template typename T1,typename T2>class pair {public: T1 first; T2 second; pair() : first( T1() ),second( T2() ) { } pair(const T1& x,c
2015-01-31 18:04:37
443
原创 linux man手册介绍
linux man手册介绍Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。Linux 的man手册共有以下几个章节:1、Standard commands (标准命令)2、System calls (系统调用)3、Library functions (库函数)4、Special devices (设备说明)5
2015-01-31 11:41:48
486
转载 有符号溢出和无符号溢出的讨论
C语言学习笔记 之(un)signed及溢出总结篇(下) 在学习了C语言进阶【暑期特别篇】深入剖析(un)signed及溢出(上)和 C语言进阶【暑期特别篇】深入剖析(un)signed及溢出(中)两篇文章后,大家是不是对有无符号有了一定的了解,但是依然会产生各种疑问,比如:定义的有符号类型的常量,发生溢出的时候以无符号类型输出会是怎样? 同样的,定义的是无符号
2014-08-11 15:30:59
6775
原创 矩阵的转置---(C语言)
#include #define MAXN 100int main(){int m, n;int i, j;int mat[MAXN][MAXN];scanf("%d", &m);while(m--){// 输入行和列均为n的n阶矩阵scanf("%d", &n);for(i = 0; i {for(j = 0; j {
2014-08-09 20:31:41
4109
原创 操作系统之哲学原理 进程
操作系统之哲学原理 进程进程管理,内存管理和文件管理是操作系统的三大核心功能。一个程序加载到内存后就变为进程:进程= 程序 + 执行,为了提高CPU利用率,人们想起将多个程序加载到计算机里,并发执行。进程让让每个用户感觉到自己独占CPU。进程模型从物理内存的分配来看,每个进程占用一片内存空间。由于在任意时刻,CPU只能执行一条指令,因此任意时刻在CP
2014-08-09 18:45:36
609
原创 用数组解决问题
用数组解决问题数组基础知识概述:数组的主要的属性直接来自它的定义,一个数组所储存的每个值具有相同点的类型。固定数据的数组,一般而言可以作为表查询,代替一系列笨拙的控制语句。非标量数组,程序员常常需要处理复合数据类型的数组,例如结构和对象。struct student { int grade; int studentid; string
2014-08-09 18:44:39
1242
原创 C程序设计奥秘笔记之C语言自身引出的问题
C语言自身引出的问题1,第一类错误:语言做了它不应该做的事2,第二类错误:没有做它应该做的事3,第三类错误:完全把事情的意思搞错了手边的启发:有一个“L”的NUL代表ASCII码串的结束,大多数字符串处理函数都不需要用户考虑NUL结束符的储存,语句本应写成 malloc(strlen(str)+ 1)有两个“LL”的NULL代表空指针第一类错误:这里
2014-08-09 18:26:26
1424
原创 形而上者谓之道,形而下者谓之器
形而上者谓之道,形而下者谓之器。基本的问题解决技巧把它们作为自己的问题解决方法的常规武器,就能想出办法解决任何特定问题。总是要制定计划我们在解决问题时必须要制定一个计划。也许这个计划一旦与敌人交火就不再有效,也许我们在源代码编辑器中开始输入代码时就会抛弃这个计划,但我们还是必须要制定一个计划。创建一个具有一系列分阶段目标的计划,虽然看上去与主要问题不是非常密切,仍然可以
2014-08-09 12:42:02
672
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人