
C++
zhangxl
这个作者很懒,什么都没留下…
展开
-
C++ volatile关键字
volatile:使用 volatile 声明的变量,在读取该变量的值时, 系统总是重新从它所在的内存读取数据; 在多线程中,我们可以利用锁的机制来保护好资源临界区。 在临界区的外面操作共享变量则需要volatile原创 2015-06-02 20:51:52 · 337 阅读 · 0 评论 -
C++ Swap( )对vector进行内存的释放
首先,vector与deque不同,其内存占用空间只会增长,不会减小。比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个。所有空间在vector析构时回收。 empty()是用来检测容器是否为空的,clear()可以清空所有元素。但是即使clear(),所占用的内存空间依然如故。如果你需要空间动态缩小,可以考原创 2015-06-03 16:22:13 · 1660 阅读 · 0 评论 -
句柄与指针
句柄是一个32位的整数,实际上是一个Windows在内存中维护的一个对象(窗口等)内存物理地址列表的整数索引。因为Windows的内存管理经常会将当前空闲的对象的内存释放掉,当需要时再重新提交到物理内存,所以对象的物理地址是变化的,不允许程序直接通过物理地址来访问对象。程序将想要访问的对象的句柄传递给系统,系统根据句柄检索自己维护对象列表就能知道程序想要访问的对象的及其物理地址了。 句柄是一种指原创 2016-04-20 22:03:23 · 1000 阅读 · 0 评论 -
new T 与new T()的区别
①T *p =new T; ②T *p =new T(); 这两类用法不同点的总结。 1.若T为类类型,且用户定义了构造函数,则两种形式的效果完全相同,都会调用这个定义了的构造函数来初始化内部成员变量,但是如果此构造函数中并未对成员变量初始化,则这个时候内部的成员变量进行默认初始化——值是未定义的。 2.若T为类类型,但是用户并没有定义任何构造函数,则我们可以知道转载 2016-09-20 16:27:15 · 5933 阅读 · 0 评论