- 博客(22)
- 收藏
- 关注
原创 C++ Primer Plus 16章
size_type 依赖于具体实现 vs2010中为一个 unsigned int, 所以在使用 string.length 等方法时要注意无符号,有符号的转换异常可能导致 delete 不执行,导致内存泄露//auto_ptrtemplate class auto_ptr{public:explicit auto_ptr(X* p = 0) throw();
2014-06-23 17:05:42
408
原创 C++ Primer Plus 15章
//友元类class Tv{public: friend class Remote;//Remote可以访问Tv的私有成员//...private://...}class Remote{private://...public:Remote(int m = Tv::TV):mode(m);bool volUp(Tv &t){re
2014-06-23 17:04:41
441
原创 C++ Primer Plus 14章
valarray类 // #inlucde使用时double gpa[5] = {3.1, 3.5, 3.8, 2.9, 3,3};valarray v1; //size 0valarray v2(8); //size 8valarray v2(10,8); //size 8 value is 10valarray v4(gpa, 4); //size 4, init by
2014-06-23 17:03:40
495
原创 C++ Primer习题 7-8
//流ostream print1(ostream os){os return os; };//错误,流类型不能作为函数的形参或返回类型,必须使用其引用或指针ostream& print1(ostream& os){os return os; };//创建和初始化一个对象有4种方式1 vector ivec(10); //包含10个0值元
2014-06-23 17:01:29
513
原创 C++ Primer Plus 练习String类
#include using std::ostream;using std::istream;#ifndef STRING_H_#define STRING_H_Hclass String{ private: char *str; int len; static int num_strings; static const int CINLIM = 80; pub
2014-06-17 15:16:41
428
原创 C++ Primer Plus 第13章
//类继承从一个类派送出另一个类时,原始类称为父类,继承类称为子类,或以父类/子类称呼class TableTennisPlayer{//...};class RatedPlayer : public TableTennisPlay{//...};子类的特征: 1 子类对象存储了父类的数据成员 2 子类对象可以使用父类的方法子类需要添加的东西:
2014-06-17 15:15:20
494
原创 C++ Primer Plus 第12章
.hclass StringBad{ static int num_strings;}.cppint StringBad::num_strings = 0;不能在类声明中初始化静态成员变量 (普通变量类内类外则都不行)//浅拷贝的坑class StringBad{ StringBad() { str
2014-06-17 15:14:41
440
原创 深入理解计算机系统 第二章
一般的,计算机使用8位的块,即字节(byte)为最小单元寻址每台计算机都有一个字长(word size), 虚拟地址以这样的一个字来编码,即对于一个字长为w的机器而言,虚拟地址的范围为0~2^w-1例如32位的计算机,虚拟地址空间为0~2^32-1 ≈ 4GBC声明 32位机器 64位机器char 1 1short 2 2int
2014-06-14 23:02:27
512
原创 C++ Primer Plus 第十一章
//操作符重载只能重载现有的操作符操作符重载其实一种函数替换:如district2 = sid + sara;district2 = sid.operator()+(sara); //隐式转换ex:mytime.hclass Time{private: ...public: Time operator+(const Tim
2014-06-14 23:01:00
417
原创 C++ Pirmer Plus 第十章
private 是类的默认访问控制实现类成员函数,用域解析操作符(::).hclass Stock(){ void show();}.cppvoid Stock::show(){ //...}//字符串拷贝-->常见面试题,一个安全的考虑到各种情况(内存重叠)的字符串拷贝函数char * strcpy(char *to, co
2014-06-14 23:00:10
460
原创 C++ Primer Plus 第九章
函数的执行需要一定的开销,C++中,内联函数在编译时被相应的函数代码替换函数调用,因此,内联函数被常规函数快,但代价是需要占用更多的内存(提高速度有限,除非函数调用次数很多)要使用内联,必须采取下述措施之一1 在函数声明前加上关键字 inline2 在函数定义前加上关键字 inline通常的做法是省略原型,将函数实现放在原型处内联与宏inline double sq
2014-06-09 16:07:27
452
原创 C++ Primer Plus 第七章
函数通过将返回值复制到指定的CPU寄存器或内存单元来将其返回。随后,调用方通过查看该内存单元来确定返回值。调用方与返回方在需在返回值的类型上达成一致函数原型指出了函数的返回值类型,编译器就明白了调用方将在指定内存单元读取多少值void show_array(const double ar[], int n);void show_array(const double *ar, i
2014-06-08 22:08:39
435
原创 C++ Primer Plus 第六章
|| && 操作符是一个顺序点(一个顺序点也就是C++会将一个表达式计算完后,才会继续下一个表达式,冒号;与 逗号,也是顺序点)故 i++ 逻辑操作符 小于 关系操作符 优先级cctype 头文件switch 标签 必须是 整数常量表达式 或者 枚举int n;cin >> n;此时输入一个单词,发生不匹配情况,则1 n的值不变2 不匹配值将留在
2014-06-07 11:51:23
393
原创 深入理解计算机系统 第一章
//=========================hello.c 预处理器(#include内容直接插入到.c文件中)hello.i编译器将c语言编译为汇编语言hello.s汇编器将hello.s翻译成机器语言格式hello.o(二进制文件)链接器 hello (可执行目标程序)//===
2014-06-06 22:43:06
376
原创 C++ Primer Plus 第五章
y = (4 + x ++) + (6 + x++); 4 + x++ 不是一个完整表达式,因此,C++不保证x的值在计算子表达式 4 + x++后立刻增加1,C++只能保证这一条语句执行完后,x增加2++n与n++,如果是用户定义的类类型,那么后缀版本首先复杂一个拷贝,将其+1,然后将复杂的拷贝返回,所以后缀版本会更快一些;但对于内置类型,则没有区别前缀递增,前缀递减,解引用操作
2014-06-06 22:42:23
396
原创 C++ Primer Plus 第四章
sizeof作用于数组名,得到整个数组的字节数,sizeof作用于数组元素,则得到的将是元素的长度(字节数)对于数值型元素,如果只对数组的一部分初始化,则编译器将把其他元素设置为0C-风格字符串有一个特殊性质,以空字符结尾(\0,ASCII码值为0)任何两个由空白分隔的字符串常量都将自动合并为一个ex:char array[10] = {'1','2','3'}
2014-06-06 22:41:31
384
原创 C++ Primer Plus 第三章
C++ 在main()函数末尾时没有遇到返回语句,则认为main()函数以 return 0 结尾C++ 通常的 可以将 回车 与 空格交换使用C++变量名规范1 名称中只能使用字母字符、数字和下划线2 名称第一个字符不能是数字3 区分大写字符与小写字符4 不能将C++关键字作为名字5 下划线下划线打头; 下划线大写字母打头; 保留给编译器使用
2014-06-06 22:40:48
390
原创 算法竞赛入门经典第四章笔记
这一章讲的指针和递归,关于指针和调用栈还需要多学习。例题4-1 组合数问题这道题主要有个溢出问题,在纸上写出组合数公式,会发现可以直接约去许多项,下面给出代码。int c(int m, int n){ if(n == 0 || m == n) return 1; if(n == 1) return m; int t = 1; for(int i = m
2013-10-24 20:49:48
484
原创 算法竞赛入门经典第三章笔记
例题3-6 最长回文子串这道题有个好思路即是,找回文的时候,不是从头到尾,而是从中间向两边扩散。#include #include #include #define MAXN 5000 + 10char buf[MAXN];char str[MAXN];int pos[MAXN];void main(){ while(fgets(buf, sizeof(str
2013-10-22 20:43:10
455
原创 算法竞赛入门经典第二章笔记
例题2-3 阶乘之和输入n,计算1! + 2! + 3! + .....+ n!的末6位。NOTE: 这道题主要是要注意溢出的问题。有两点可以注意。1:注意题目给出的条件 "末6位"。用笔在纸上模拟一下乘法的运算法则,可以发现结果的末n位其实只和乘数与被乘数 的末6位有关,所以每次阶乘结果我们只需要保存后六位就可以了。 2:其实可以发现,在n大于25的时候,阶乘的后六位已经全部为
2013-10-22 19:07:58
588
原创 算法分析与设计基础 学习笔记 第一章
第一章用了几个不同 求 最大公约数的例子 来引入算法分析与设计的概念//欧几里得算法求最大公约数//Input: m,n 非负不全为0的非负整数//Output: m,n 的最大公约数int gcdEuclid(int m, int n){ int r = 0; while( 0 != n) { r = m%n; m = n; n = r; } retu
2013-03-19 21:45:43
614
原创 求数组的主要元素
大小为N的数组A,其主要元素是一个出现次数超过N/2的元素。例如,数组3, 3, 4, 2, 4, 4, 2, 4,4有一个主要元素4,而数组3, 3, 4, 2, 4, 4, 2, 4没有主要元素。(原题为《数据结构与算法分析》 2.19)原题的提示有些抽象,参考此文,用C++写了一个解法。主要思想即为:1.找出一个候选元。2.检查此元素是否为
2013-03-11 20:35:21
1200
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人