摘要: 双向链表实现今天晚上用模板方法把双向链表实现了下,由于有点小粗心,在 insert中手抖了下,把tail->prev 打成了 tail->next,由于错误是发生在drop函数执行时,让我一直去调drop函数,调了半天还是一样错误,最后我系统在vs中监视了下值的变化,终于看到是insert出错了。 看来程序员离不开调试呀。另外,昨天说的模板输出重载,我说要在友元的实现时加上 <>, 但是今天我在gcc中测试了下,居然说找不到匹配的函数,导致编译不通过,真心蛋疼,vs和g++的区别还真心大,看来改天要好好专研下模板输出重载,知道的朋友希望能够告知下。对数据结构的实现,其实 阅读全文
posted @ 2013-05-23 00:29 xield 阅读(360) 评论(0) 推荐(0) 编辑
摘要: C++的知识点很零碎繁琐,只是总结没啥作用,更多的应该是在实践中找问题。今天我去编写《数据结构,算法与应用 C++语言描述》中线性表的实现代码,感觉写代码能力生疏了好多。编写过程中,我发现了几个问题,很值得关注:1、我的代码是通过类模板编写的。很多人写代码的时候,都把声明和实现放在一个头文件里,primer中说要借用export才能实现分离编译,对于这点,我也不是很了解,但是我取巧了下,通过两个 #ifndef....#endif 达到了声明放在.h, 实现放在了.cpp中。2、模板类中关于<<的重载,需要在声明中加入 <> ,要不然编译不通过。3、cout 的刷新问题 阅读全文
posted @ 2013-05-21 23:59 xield 阅读(312) 评论(0) 推荐(0) 编辑
摘要: More extensions to C , Some features of C++11对于稍微有些C++的同学,大概都知道C++和C的一些主要区别,大的区别就是一个是面向对象,一个是面向过程,这就涉及到对象; 同时,还有命名空间的引入,防止变量名冲突; 还有struct支持成员函数等。 我就继续注释一些更需要注意的一些不同,一些是C++11中的东西。引用可以通过引用修改它引的对象,但是不能改变它本身。这么听来,就像是常量指针, 另外,引用也让代码更加自然,不像c里边会出现一堆的&来表示传址调用。int a=1;int &r=a;int* const rr = a; // i 阅读全文
posted @ 2013-05-21 11:42 xield 阅读(330) 评论(0) 推荐(0) 编辑
摘要: C语言博大精深。把 K&R 经典的TCPL看了好几遍,每次看都有新的收获。 手册就短短百来页,就把C的精髓都阐述的通透。但是,C语言是一门怎么学都学不够的语言,看了其他一些关于C的大牛书,感觉《C专家编程》非常好,我很喜欢,感觉正好是对我知识点的一个补充。因此,查缺补漏,我把《C专家编程》作为C方面的温故书籍。 当然,现在我的C水平有限,博客某些内容回到以后对这块有更好的认识了,再更新。 博客计划如下:一些零碎的易混淆知识 (持续更新)符号重载、优先级、结合性分析深入剖析声明一维数组和指针的辨析多维数组和指针链接的思考运行时数据结构对内存的思考 阅读全文
posted @ 2013-05-20 12:49 xield 阅读(203) 评论(1) 推荐(0) 编辑
摘要: C++发展态势良好,已经出了C++11标准了。《C++ Annotations Version 9.6.0》也已经出了,补充了很多C++11的新东西, 下载点这里 。 个人感觉Annotation写的不错!感谢Frank B. Brokken! 查看了下Annotation的目录,吓坏掉,实在太多章了。当然,老外的书,都写的非常详细,写得很用心。既然作者敢写,那我就自然敢看。当然不可能巨细无遗的完整阐释书中完整的精髓,我的能力也有限。接触C++的时间不多,primer就看了一两遍,还有其他一些C++的相关书籍资料,个人认为算是小入门了吧。因此,也是按照我自己现有的水准,写些关于C++的基础提. 阅读全文
posted @ 2013-05-20 12:36 xield 阅读(389) 评论(0) 推荐(0) 编辑
摘要: c和c++的某些小区别C++类型检查更加严格 c语言中,当字符当做函数参数传入是,都把字符当整型int使用,sizeof('c') = sizeof(int); 更进一步,c编译器把字符常量等同于整数常量处理: putchar(10) 同 putchar('\n') 等效。 但是,C++中, sizeof('c') == 1, 补充说明一点, sizeof(wchar_t) ==4。 因此可以很容易代表65,536个不同的Unicode字符。 另外,C++中,区别函数不仅要看他的函数名,更要看它的参数。因此,putchar(10)调用的是putc 阅读全文
posted @ 2013-05-20 12:32 xield 阅读(683) 评论(3) 推荐(1) 编辑
摘要: 今年九月就要开始找工作了,感到压力巨大。回顾这些年所学的东西,零零散散,是懂非懂。很有必要归纳整理下,温故而知新。因此,需要有毅力来完成我自己定下的180天计划。 自己几天前头脑风暴了下,用思维导图大致整出了所需要的两块重要技能,分为两块,技术、非技术。因此,涅槃计划也是一样的。技术类编程语言类C 语言--------------为何不精通C? 系列C++语言----------C++ Annotation 数据结构、算法基本数据结构及算法面试题中常考的算法类型总结acm 题剖析设计模式操作系统Linux(着重)Windows计算机网络数据库mysql非技术类公务员行测题面试在温故的同时,同. 阅读全文
posted @ 2013-05-19 11:55 xield 阅读(194) 评论(4) 推荐(0) 编辑
摘要: 前言 学习C语言,指针绝对是一道大坎,很多人谈指针色变,使用起来小心翼翼的。“一切指针都是纸老虎” ,同时,对我们得“在战略上藐视指针,战术上重视指针”。本文先剖析下一维数组和指针,多维的情况后序博客继续更新。文章流程:1、辨析指针和数组的不同2、辨析它们相同的时刻3、总结指针和数组为什么这么纠缠不清 首先说一点,指针的使用等同于数组的情况远远多于他们不同的情况,因此,在初学时,为了容易理解,很多人都说 “指针=数组”。 但是,这却是错误的!来个例子吧:// file1.c 定义一个数组arrayint array[100];以上是在文件1中的定义// file2.c 声明file1.c中的a 阅读全文
posted @ 2013-05-19 11:19 xield 阅读(501) 评论(19) 推荐(2) 编辑
摘要: 对于复杂的C函数声明,或者被typedef别名后的声明,很多人往往一头雾水。本文主要解析下C语言中声明过程所遵循的原则。声明 引用《C专家编程》的第三章内容,说明下声明的优先级规则:声明从它的名字开始读,然后按照优先级顺序依次读取。优先级从高到底依次为:括号包围的地方后缀操作符:括号()表示是一个函数方括号[]表示是一个数组前缀操作符:星号*表示类型是 指向....的指针若const/volatile关键字的后面紧跟类型说明符(int,float),那么其作用于类型,在其他情况下,作用于其左边紧邻的指针星号。不过,我觉得这个规则的不够通俗,看了《C++Annotation》中关于const的. 阅读全文
posted @ 2013-05-17 15:01 xield 阅读(315) 评论(0) 推荐(1) 编辑
摘要: 本文主要将两个部分,符号重载和运算优先级问题,这两个问题很常见,很繁琐。我猜绝大部分的人在学习时都选择性忽略该章节的内容。但是在面试时,却常常考这方面的东西,因为,“精通”之名。 C中,具备着符号重载,符号重载是体现在程序上下文语境中,不同符号表现出不同的含义。比如“*”,具备三个含义:声明指针,指针解引,乘号。 《C专家编程》总结了下所有的符号重载,用以理清C语言作用域规则:符号意义static函数内部:表示仅在首次调用声明该变量,在此后调用中保持传承函数定义:该函数仅在本文件中可见extern函数定义:表示全局可见(默认属性,extern可省略)变量声明:仅说明该变量在其他地方定义。voi 阅读全文
posted @ 2013-05-17 11:14 xield 阅读(528) 评论(2) 推荐(1) 编辑