2013年2月19日

const与 define 的区别

摘要: define常见用法:1.定义简单的常数:定义常量,便于修改(切不可在后面加上分号!)#define N 1000等效于const int N = 1000;但略有不同,define只是简单替换,而不是作为一个变量来使用.2. 定义简单的函数:注意多使用括号 define可以像函数那样接受一些参数,如下:#define max(x,y) (x)>(y)?(x):(y);3.条件编译(防止重复包括 重复定义)4.定义单行宏,多行宏与const比较部分const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而#define 只作简单的字符串替换,无类型安全检查。co 阅读全文

posted @ 2013-02-19 17:55 阳光雨露& 阅读(323) 评论(0) 推荐(0) 编辑

C++ STL中的vector的内存分配与释放

摘要: 1.vector的内存增长vector其中一个特点:内存空间只会增长,不会减小,援引C++ Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能难以接受。因此STL实现者在对vector进行内存分配时,其实际分配的容量要比当前所需的空间多一些。就是说,vector容器预留了一些额外的存储区,用于存放新添加的元素,这样就不必为每个新元素重新分配整个容器的内存空间。在调用push_back时,每次执行push_back操作,相 阅读全文

posted @ 2013-02-19 17:50 阳光雨露& 阅读(1015) 评论(0) 推荐(0) 编辑

导航