
c++
batilei
Temporal - Spatial Data
展开
-
主函数 main WinMain _tmain _tWinMain 的区别
main是C/C++的标准入口函数名WinMain是windows API窗体程序的入口函数。(int WINAPI WinMain()) 中 WINAPI是__stdcall宏,在windef.h中定义的。_tmain _tWinMain 是Unicode版本函数别名,转载 2011-08-18 10:48:51 · 1896 阅读 · 0 评论 -
POJ3322-经典的游戏搜索问题
临近毕业真是各种琐事多,好不容易写完几万字蛋疼的论文,又接着户口档案挂靠,毕业旅游,20多个离校盖章,签证被check了几个星期还没消息,希望8月初能走啊。 各种事情之下,人就是懒加心散,好久没写代码,也时间写,再说也不知道写啥。突然心血来潮还是刷刷题,不然都忘记代码怎么写了。 Poj33222,Bloxorz,一个很有意思的小游戏,一道中等的搜索题目。该题目也是相关游戏的AI算法的一个原创 2013-07-01 13:58:37 · 1441 阅读 · 0 评论 -
c++变量在堆中还是栈中
C++自己写了很久都弄混几个常见的错误,堆 栈,托JingWei和Xiaoma的指导终于弄清楚,果然是工作几年的大牛就不一样。呵呵。 直入主题。 C++中,局部函数里面,new一个内存块,地址是在堆中,而其他的变量基本在栈中。栈中的变量内存随着局部函数的结束而被自动销毁,堆的则不会,需要自己delete销毁。 举个常见的错误:int* Func1(){ int p[2];原创 2012-08-03 16:50:09 · 4102 阅读 · 4 评论 -
函数中定义一个大数组,却stack overflow?
一般情况下,如果自己在函数中定义了一个非常非常大的数组,导致stack overflow,肯定第一件事情就是自己回头优化下自己的代码,不要用这么大的内存。但是如果经过千辛万苦的优化还是不行,那么: (1) 用new的方法,从堆中申请内存,而不是在栈中。理论上内存中,堆比栈可以用的空间要多很多,栈在vs2010中默认1M,堆理论上2G(32位程序)。 (2) 如果在vs中,可以通过修改v原创 2012-08-16 19:36:51 · 2478 阅读 · 0 评论 -
调用STL的sort,出错提示invalid <
今天调用STL的sort函数,结果一直出错说 invalid class TrajPoint{public: double distance; int edgeId;};bool ComparePoint(TrajPoint a,TrajPoint b){ if(a.distance<b.distance) return true; if(a.原创 2012-08-30 16:39:03 · 1356 阅读 · 0 评论 -
C++与C#之容器Map的比较
在C++ 和 C#都用过map,非常常用和实用的一个容器,两个语言中用途都是查找,但是内部的机制却不一样。简单总结下。 1:值与引用:正如C# 和 C++的区别,C#中的map是根据key的地址去找,而C++的map,则是根据key的值去查找。 2:实现机制:如上面所说,对key的不同理解,就决定了不同的算法。C#的map是用hash,而C++的查找,则是用红黑树。 3: 用法比原创 2012-08-09 13:03:55 · 9261 阅读 · 1 评论 -
vector地址发生变化
因为没有深入研究STL的源码,犯浑犯了一个错误,以为无论如何vector的所有元素的地址都不变,比如vector [0] ,就想去记录这个地址,留着这个地址以后慢慢用。 结果发现不是这么一回事,这个地址是会变的,因为如果vector一开始申请的空间不足,比如你经常push_back(),vector会重新申请过一整块空间,导致其所有的地址都发生了改变。所以不要私自用指针指向并储存这一块地址,原创 2012-07-19 21:39:21 · 2327 阅读 · 4 评论 -
C++的堆,栈等五大存储区
写了这么久C++,也没好好弄清楚堆和栈的区别关系,囧。转一篇还不错的过来学习下。 五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,转载 2012-08-03 16:37:35 · 2597 阅读 · 0 评论 -
最快速度找到内存泄漏
原作出处http://blog.youkuaiyun.com/xushiweizh/article/details/1451083最快速度找到内存泄漏 内存管理是C++程序员的痛。我的《内存管理变革》系列就是试图讨论更为有效的内存管理方式,以杜绝(或减少)内存泄漏,减轻C++程序员的负担。由于工作忙的缘故,这个系列目前未完,暂停。 这篇短文我想换个方式,讨论一下如何以转载 2011-10-31 10:14:25 · 899 阅读 · 0 评论 -
MSDN_启用内存泄漏检测
启用内存泄漏检测Visual Studio 2008 更新:2007 年 11 月本主题适用于: 版本Visual Basic C# C++ Web Developer 速成版仅限本机标准版转载 2011-10-31 10:34:34 · 669 阅读 · 0 评论 -
c++变量莫名其妙改变_内存覆盖
内存覆盖是个很简单又很隐蔽的错误。如果在程序中发现某个数组a的一些结果被莫名奇妙改写了,但你可以很肯定你没有在代码中修改它们。很有可能内存被不小心覆盖了。例如: int b[100]; int a[100]; int c=102; b[c]=原创 2011-09-10 16:14:04 · 5103 阅读 · 0 评论 -
C++著名程序库的比较和学习经验
C++著名程序库的比较和学习经验1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML6、C++各大有转载 2011-05-18 11:07:00 · 1117 阅读 · 0 评论 -
C++ - Priority_Queue
A good introduction article from http://comsci.liu.edu/~jrodriguez/cs631sp08/c++priorityqueue.htmlC++ priority queuesA priority queue is an abstract data type that captures the idea转载 2014-06-17 10:48:31 · 774 阅读 · 0 评论