Member function 如何作为Callback?
这里其实是两个问题。
第一个问题,member function的函数签名上有this指针,不能直接传给glut*Func作为callback。
member function不行,很自然的想到static function。
第二个问题,static function如何能够调用member function,且与之关联的对象(this指针)能够在运行时期(或者用户程序)决定?
其一,static function调用member functi...
分类:
其他好文 时间:
2014-06-09 23:27:43
阅读次数:
313
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。
循环链表的操作
1,循环链表的新操作
2, 获取当前游标指向的数据元素
3, 将游标重置指向链表中的第一个数据元素
4,将游标移动指向到链表中的下一个数据元素
5,直接指定删除链表中的某个数据元素
CircleListNode* CircleList_DeleteNode(CircleList* list, CircleListNode* node);
CircleListNode* Ci...
分类:
编程语言 时间:
2014-06-08 17:04:24
阅读次数:
242
QT中很多类都实现了隐含共享例如QString,QByteArray等,(这两个并没有使用QSharedData和QSharedDataPointer来实现隐含共享),但是QT的确提供了一套隐含共享机制的类QSharedData和QSharedDataPointer。核心原理是隐含共享数据指针(QSharedDataPointer重载->操作来控制所有对QSharedData数据对象的访问,确保统...
分类:
其他好文 时间:
2014-06-08 15:52:37
阅读次数:
302
CDC是MFC的DC的一个类
HDC是DC的句柄,API中的一个类似指针的数据类型.
MFC类的前缀都是C开头的
H开头的大多数是句柄
这是为了助记,是编程读\写代码的好的习惯.
CDC中所有MFC的DC的基类.常用的CClientDC dc(this);就是CDC的子类(或称派生类).
CDC等设备上下分类,都含有一个类的成员变量:m_nHdc;即...
分类:
其他好文 时间:
2014-06-08 10:32:40
阅读次数:
183
C/C++指针的指针(**p)和指针的引用(*&)使用案例分析
一个简单的映射描述:
int **pp = 5;
[pp=0x***]---->[*pp=0x****]---->[**p = 5]...
分类:
编程语言 时间:
2014-06-08 09:57:32
阅读次数:
250
栈的链式存储,即链式栈。它相比于顺序栈,
优点:
插入、删除灵活 (不必移动节点,只要改变节点中的指针指向即可)。
逻辑上相邻的节点物理上不必相邻。
缺点:
比顺序存储结构的存储密度小 (每个节点都由值域和链域组成,使用指针来表现前后节点的逻辑关系)。
查找节点时链式存储要比顺序存储慢。
这些优点、缺点体现了顺序存储和链式存储的相区别之处。
看图就很形象了:...
分类:
其他好文 时间:
2014-06-08 08:21:23
阅读次数:
251
volatile关键字表明,即使程序代码没有对内存单元进行修改,其值也可能发生变化。例如,可以将一个指针指向某个硬件位置,其中包含了来自串行端口的时间或信息。在这种情况下,硬件(而不是程序)可能修改其中的内容。或者两个程序可能互相影响,共享数据。该关键字的作用是为了改善编译器的优化能力。例如,假设编译器发现,程序在几条语句中两次使用了某个变量的值,则编译器可能不是让程序查找这个值两次,而是将这个值...
分类:
编程语言 时间:
2014-06-08 05:34:29
阅读次数:
278
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
单链表的局限
1,单链表的结点都只有一个指向下一个结点的指针
2,单链表的数据元素无法直接访问其前驱元素
3,逆序访问单链表中的元素是极其耗时的操作...
分类:
编程语言 时间:
2014-06-08 02:16:06
阅读次数:
352
题目 :Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
解题思路:
给出一个数组合一个数,如果两个数的和等于所给的数,求出该两个数所在数组中的位置。
这个题也挺常见的,就是两个指针,从前后两个方向扫描。但是本题有以下几个需要的点:
1. 所给数组不是有序的;
2. 返回的下标是从1开始的,并且是原来无序数组中的下标;
3. 输入数组中可能含有重复的元素。
好了,把以上三点想到的话,做这个题应该不会有啥问题。
具体方法:把原...
分类:
其他好文 时间:
2014-06-08 02:14:06
阅读次数:
250