C/C++
panyc33
这个作者很懒,什么都没留下…
展开
-
STL之map
一 map内部数据的组织 map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。 二 map的构造函数 map共提供了6个构造函数,这块涉及到内存分配器这些东西,略过不表,在下面我们将接触到一些map的构造方法,这里要说下的就是,我们通常用如下方法构造一个map: Ma原创 2009-12-06 10:54:00 · 495 阅读 · 0 评论 -
/FORCE:MULTIPLE
“struct _tg_Edge * g_Edge” (?g_Edge@@3PAU_tg_Edge@@A) 已经在 GUIContainer.lib(gui16.obj) 中定义且为之奈何?简单!在Linker选项中选择命令行页面,加上一个选项:/FORCE:MULTIPLEFORCE:MULTIPLE 这个选项告诉链接器去创建一个有效的exe文件或dll文件,即使一个函数原创 2009-12-24 10:48:00 · 7580 阅读 · 0 评论 -
总结C++中的所有强制转换函数
C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题转载 2010-01-05 16:01:00 · 972 阅读 · 0 评论 -
ofstream与ate的故事 经典!
很久之前,我和Swalky在写Huffman Tree压缩的时候,遇到了一个问题:我们想在一个已经写入了一些内容的文件中部(或头部)写一些内容(用于修改文件的一些meta信息),结果发现总是不行。如果用ofstream的默认构造函数,文件原有内容就不会保留下来,如果用了ios::app,无论怎么用seekp来定位,所写的内容都会跟在文件原有内容的最后面。怎么办呢?本着RTFM的心态,他去看C+转载 2010-03-31 10:35:00 · 1092 阅读 · 0 评论 -
#ifdef _DEBUG用法小结
1#ifdef _DEBUG virtual void AssertValid() const; //assert(断言)valid(有效的,正确的)virtual void Dump(CDumpContext& dc) const; //存储上下文#endif这两个函数是调试用的,第一个函数检查可用性,即是否有效 第二个函数如果未更改的话,最终调用的是Cwnd::Dump(); 输出窗口类名,标转载 2010-05-04 15:33:00 · 564 阅读 · 0 评论 -
DLL导出类的问题
DLL导出类的问题原创 2010-07-23 20:30:00 · 706 阅读 · 1 评论 -
delete this,dll导出类及如何写plugins
<br />1.为什么要使用delete this,以及如何使用。<br />(1)考查这样的情况:<br />有两个对象A,B需要访问同一个多态对象C。<br />因为C一般是通过new 操作构造的,一定要自己释放,但是对象A,B都需要使用它,并且B不知道A什么时候使用完成C,A也不知道B什么时候使用完成C(当然可以用函数通信的方法通知了,不过是一个比较丑陋的实现方法),所以不能在A/B中间来delete,<br />一个折中的办法是在程序退出的时候来delete,但是这样做不到资源的立即释放,假如有多个原创 2010-07-23 20:51:00 · 572 阅读 · 0 评论