蘭陵N梓記

一指流沙,程序年华


  • 首页

  • 归档

  • 关于

  • 搜索
close

c++技巧之宏Macro应用

时间: 2009-06-12   |   分类: 技术     |   阅读: 670 字 ~2分钟
  1. 宏不要用来定义常量,因为宏变量是没有类型安全,也没有名字空间约束,会造成名字的污染。

  2. 宏的展开是一行,所以宏中的注释不能使用//,只能使用/* */。宏的代码也不能gdb跟踪,宏中代码逻辑要尽量简单。

  3. 宏的参数一般情况下使用时要用()括起来,如: #define MAX(a, b) a /2 > b ? a /2 : b MAX(3,4)使用没有问题,但MAX(3+4, 4)却有问题,因为宏的参数仅为符号替换。 应用定义为#define MAX(a, b) (a) / 2 > (b) ? (a) /2 : (b)

阅读全文 »

c++实现的stack

时间: 2009-06-11   |   分类: 技术     |   阅读: 687 字 ~2分钟

还是前一段时间需要任职资格考试,自己练习一下栈stack的简易实现,今天把它贴出来,暴露的接口与STL类似,没有实现iterator迭代器。实现有两种方式, 基于顺序存储与链式存储。栈的特点是“后进先出”,在数学表达式运算,编译语法分析中,程序函数调用时最为常见。

阅读全文 »

用c++模板来展示new与delete操作符原理

时间: 2009-06-08   |   分类: 技术     |   阅读: 998 字 ~2分钟

C++中的new与delete可以认为是C中的malloc与free的升级版本。new包含两部分:

  • 第一部分是与malloc功能相同,是从堆上面申请内存块
  • 第二部是调用类的构造方法来初始化刚申请的内存。

delete是new的逆过程,先调用类的析构方法来反初始化,再把刚申请的内存还给堆。

new []与delete []是针对数组操作符,要注意是通过new []分配的对象,不能用delete来释放对象,否则会有内存泄漏。当然通过new分配的对象,不能用delete[]来释放对象。后面我会通过代码来说明为什么。

阅读全文 »

c++常见的几个排序算法

时间: 2009-06-07   |   分类: 技术     |   阅读: 1110 字 ~3分钟

前一段时间需要任职资格考试,于是又拿起丢了几年的数据结构书看了看,温习了一下常见的几个排序算法。今天特把我写的学习代码贴了出来。排序的算法常见有插入排序,选择排序与交换排序,较复杂一点还有归并排序与基数排序,概念性的东西我就不多说了,大家可以找一本严老师数据结构书看看。读大学时不觉得怎么样,现在再来看看,又结合这几年的编程经验,通过C++风格函数子造了一遍轮子。

阅读全文 »
13 14 15 16 17 18 19 20 21
兰陵子

兰陵子

Programmer & Architect

164 日志
4 分类
57 标签
RSS 订阅
GitHub 知乎
© 2009 - 2022 蘭陵N梓記
Powered by - Hugo v0.101.0
Theme by - NexT
0%