最快速度去Google.CN?
什么办法可以以最快速度去Google.CN?
排除收藏Google网站一途外,其实你只需要在地址栏输入 g.cn 即可。
Windows程序调试系列: 使用VC++生成调试信息介绍了各种调试信息文件。但是最具有实用意义的pdb格式不明,只能通过DIA(Debug Information Access) SDK来进行访问。
Microsoft Visual Studio 2005 直接带有DIA SDK,位于 $(VSROOT)\DIA SDK 下。其中这里 $(VSROOT) 指 Microsoft Visual Studio 2005 的根目录。从其提供的idl看,功能还是比较完整。另外,DIA SDK还提供一个Samples:DIA2Dump,该程序本身已经是一个较为实用的程序。
最近(4月5日 - 4月13日)出差北京,待的时间比较久,欢迎朋友骚扰:)
我的联系方式已经给过多次了,这里不妨再重复下:
另外,我近2年来的研究方向是: Distributed System, Parallel Computing, Search Engine, Collaborative Filtering, Text Processing, NLP, 欢迎交流。
你应该忘记C库的qsort,而使用C++的std::sort。尽管两者都是采用快速排序算法。
由于C++独特的模板技术,加上仿函数(functor)的存在,使得排序算法在C++语言中,获得了无可比拟的性能优势。这种优势是C语言,更别说其他如Java、C#语言所可以比拟的。虽然,Java、C#也存在模板,但是他们的模板技术实现方案无法带来性能上的好处。
本文已经迁移到:http://cpp.winxgui.com/cn:functor
回调函数(callback)与仿函数(functor)很多时候从用途上来看很相似,以致于我们经常将它们相提并论。例如:
inline bool compare(int a, int b)
{
return a > b;
}
struct comparer {
bool operator()(int a, int b) const {
return a > b;
}
};
void main()
{
std::vector<int> vec, vec2;
std::sort(vec.begin(), vec.end(), compare);
std::sort(vec2.begin(), vec2.end(), comparer());
}
仿函数(functor)之所以称为仿函数,是因为这是一种利用某些类对象支持operator()的特性,来达到模拟函数调用效果的技术。
如果这里vec, vec2这两个vector的内容一样,那么从执行结果看,使用回调函数compare与使用仿函数comparer是一样的。
那么,我们应该用回调,还是用仿函数?
很多人都说用仿函数吧,回调函数是丑陋的,代码不太象C++风格。
但其实问题的本质不是在代码风格上,仿函数与回调函数各有利弊,不能一概而论。
我的建议是,如果可以用仿函数实现,那么你应该用仿函数,而不要用回调。原因在于:
仿函数技术可以获得更好的性能,这点直观来讲比较难以理解。你可能说,回调函数申明为inline了,怎么会性能比仿函数差?我们这里来分析下。我们假设某个函数func(例如上面的std::sort)调用中传递了一个回调函数(如上面的compare),那么可以分为两种情况:
话又说回来了,仿函数并不能完全取代回调函数所有的应用场合。例如,我在std::AutoFreeAlloc中使用了回调函数,而不是仿函数,这是因为AutoFreeAlloc要容纳异质的析构函数,而不是只支持某一种类的析构。这和模板(template)不能在同一个容器中支持异质类型,是一个道理。
winx-1.1.08版本发布了。此次更新的内容较多。您可以到这里了解详情。最引人注目的当然是WINX也提供了Application Wizard了,你可以很方便地开始建立自己的WINX应用程序。以下是WINX AppWizard的一个简单使用指南。
如果你下载了winsdk.zip,并且使用了它,有时你可能遇到以下Link错误:uuid.lib文件破坏。
这是我提供的winsdk有些lib文件破坏了,临时的解决方案是,拿VC++ 6.0带的uuid.lib替换掉winsdk/lib/uuid.lib 即可。