123, 3.14, 'X', "hello"都是复合文字(int [2]){10, 20}; // 一个复合文字, 创建了一个包含两个int值的无名称数组(int []){10, 20}; // 自动计算元素数目int * ptr;ptr = (int [2]){10, 20};int (*...
分类:
其他好文 时间:
2014-09-01 17:37:33
阅读次数:
230
条款13:以对象管理资源许多资源被动态分配于heap内而后被用于单一区块或函数内。它们应该在控制流离开那个区块或函数时被释放。标准程序库提供的auto_ptr正是针对这种形式而设计的特制产品。auto_ptr是个类指针对象,也就是智能指针,其析构函数自动对其所指对象调用delete。以对象管理资源的...
分类:
编程语言 时间:
2014-08-31 19:59:51
阅读次数:
292
weak_ptr示例/*// 使用shred_ptr的主要原因就是避免关注指针指向的资源// 只能指针将自动释放与不再需要的对象的相关资源// 但是某些情况下,这种却不是我们需要的。// 比如 循环引用.两个对象都引用对方。// 又或者 分享一个对象 但是不占有该对象/...
分类:
编程语言 时间:
2014-08-31 18:35:21
阅读次数:
261
用智能指针可以简化内存管理。以树为例,如果用普通指针,通常是在插入新节点时用new,在析构函数中调用delete;但有了unique_ptr类型的智能指针,就不需要在析构函数中delete了,因为当unique_ptr类型的指针P生命结束时(比如对于局部变量,程序执行到局部变量的作用域范围之外).....
分类:
编程语言 时间:
2014-08-31 15:38:31
阅读次数:
246
free函数原型: void free(void *ptr)功 能: 释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。程序例:#include #include #include #include int main(...
分类:
其他好文 时间:
2014-08-29 18:04:38
阅读次数:
161
在下面几种情况下不能视为重载:1、返回值不同的函数不能视为重载2、返回值是否为静态不能视为重载3、数组和指针int fun(int *ptr);int fun(int ptr[]); // redeclaration of fun(int *ptr)4、函数和函数指针void h(int ());v...
分类:
编程语言 时间:
2014-08-28 21:10:56
阅读次数:
304
前言:
在日常的编程工作中,常常定义一些实用的宏方便调用,该文章将收集一些常用的宏供大家参考,欢迎大家讨论和添加!
指针释放
最常用的就是指针的安全释放。
对应new的释放
#define ReleasePtr(Ptr) {if (Ptr != NULL){delete Ptr;Ptr = NULL;}}
对于new数据的释放
#defi...
分类:
编程语言 时间:
2014-08-28 16:55:52
阅读次数:
298
//堆排序//①维护堆 void max_heapify(int *ptr,int index,int len){ index = index + 1; int left = index ptr[index - 1]) largest = left; if(righ...
分类:
其他好文 时间:
2014-08-26 11:19:16
阅读次数:
186
#include using namespace std;void swap(int* p,int* q){ int temp = *p; *p = *q; *q = temp;}//快速排序int partition(int *ptr,int first, int last){ ...
分类:
其他好文 时间:
2014-08-25 21:07:04
阅读次数:
268
#include using namespace std;void merge(int* ptr,int first, int mid, int last){ int len = last - first + 1; int *temp = new int[len]; ...
分类:
其他好文 时间:
2014-08-25 20:59:14
阅读次数:
229