自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 C++ Primer Plus 16章

size_type 依赖于具体实现 vs2010中为一个 unsigned int, 所以在使用 string.length 等方法时要注意无符号,有符号的转换 异常可能导致 delete 不执行,导致内存泄露 //auto_ptr template 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 442

原创 C++ Primer Plus 14章

valarray类 // #inlucde 使用时 double gpa[5] = {3.1, 3.5, 3.8, 2.9, 3,3}; valarray v1; //size 0 valarray v2(8); //size 8 valarray v2(10,8); //size 8 value is 10 valarray v4(gpa, 4); //size 4, init by

2014-06-23 17:03:40 497

原创 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_H class 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章

.h class StringBad {      static int num_strings; } .cpp int StringBad::num_strings = 0; 不能在类声明中初始化静态成员变量 (普通变量类内类外则都不行) //浅拷贝的坑 class StringBad {      StringBad()      {           str

2014-06-17 15:14:41 444

原创 深入理解计算机系统 第二章

一般的,计算机使用8位的块,即字节(byte)为最小单元寻址 每台计算机都有一个字长(word size), 虚拟地址以这样的一个字来编码,即对于一个字长为w的机器而言,虚拟地址的范围为0~2^w-1 例如32位的计算机,虚拟地址空间为0~2^32-1 ≈ 4GB C声明 32位机器 64位机器 char   1 1 short   2 2 int    

2014-06-14 23:02:27 512

原创 C++ Primer Plus 第十一章

//操作符重载 只能重载现有的操作符 操作符重载其实一种函数替换:如 district2 = sid + sara; district2 = sid.operator()+(sara);     //隐式转换 ex: mytime.h class Time { private:      ... public:      Time operator+(const Tim

2014-06-14 23:01:00 417

原创 C++ Pirmer Plus 第十章

private 是类的默认访问控制 实现类成员函数,用域解析操作符(::) .h class Stock() {      void show(); } .cpp void Stock::show(){      //... } //字符串拷贝-->常见面试题,一个安全的考虑到各种情况(内存重叠)的字符串拷贝函数 char * strcpy(char *to, co

2014-06-14 23:00:10 463

原创 C++ Primer Plus 第九章

函数的执行需要一定的开销,C++中,内联函数在编译时被相应的函数代码替换函数调用,因此,内联函数被常规函数快,但代价是需要占用更多的内存(提高速度有限,除非函数调用次数很多) 要使用内联,必须采取下述措施之一 1 在函数声明前加上关键字 inline 2 在函数定义前加上关键字 inline 通常的做法是省略原型,将函数实现放在原型处 内联与宏 inline double sq

2014-06-09 16:07:27 453

原创 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作用于数组元素,则得到的将是元素的长度(字节数) 对于数值型元素,如果只对数组的一部分初始化,则编译器将把其他元素设置为0 C-风格字符串有一个特殊性质,以空字符结尾(\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 391

原创 算法竞赛入门经典第四章笔记

这一章讲的指针和递归,关于指针和调用栈还需要多学习。 例题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 485

原创 算法竞赛入门经典第三章笔记

例题3-6 最长回文子串 这道题有个好思路即是,找回文的时候,不是从头到尾,而是从中间向两边扩散。 #include #include #include #define MAXN 5000 + 10 char buf[MAXN]; char str[MAXN]; int pos[MAXN]; void main(){ while(fgets(buf, sizeof(str

2013-10-22 20:43:10 456

原创 算法竞赛入门经典第二章笔记

例题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 1201 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除