草庐IT

dispatch_main_queue_callback

全部标签

c++ - std::priority_queue:自定义排序而不定义比较器类

我想要一个自定义排序的优先级队列,但我很懒惰,不想定义一个实现operator()的比较器类。我真的很想编译这样的东西:std::priority_queue,boost::bind(some_function,_1,_2,obj1,obj2)>queue;其中some_function是一个带有四个参数的bool返回函数,第一个和第二个是队列的整数,最后两个是计算排序所需的一些对象(const引用)。(error:‘boost::bind’cannotappearinaconstant-expression)但这不能编译。甚至更简单std::priority_queue,&compa

c++ - 进入main()前出现栈溢出异常

当使用vs2010编译(和执行)这个c++代码时,我在它甚至可以向控制台写入“开始”的一瞥之前得到一个堆栈溢出异常。我使用的所有头文件都包含在stdafx.h中,但这显然不是这里的问题(直接包含头文件时同样的问题)。堆栈跟踪如下:>msvcr100d.dll!__set_flsgetvalue()Zeile145+0xcBytesCmsvcr100d.dll!_getptd_noexit()Zeile500Cmsvcr100d.dll!_getptd()Zeile523+0x5BytesCmsvcr100d.dll!_LocaleUpdate::_LocaleUpdate(locale

c++ - main 的递归

我读到一些地方说main()的递归在C++中是不允许的,但是当我尝试它运行时没有任何错误#includeusingnamespacestd;inti=10;intmain(){if(i==1){cout 最佳答案 显式调用main是未定义的行为,任何事情都可能发生(包括看似有效)。C++033.6.13)Thefunctionmainshallnotbeusedwithinaprogram.[...]编译器(就像所有未定义的行为一样)不需要提供诊断,运行时也不需要崩溃。 关于c++-ma

c++ - priority_queue<> 比较指针?

所以我将STLpriority_queue与指针一起使用...我不想使用值类型,因为创建一堆仅用于优先级队列的新对象将非常浪费。所以...我正在尝试这样做:classInt{public:Int(intval):m_val(val){}intgetVal(){returnm_val;}private:intm_val;}priority_queuemyQ;myQ.push(newInt(5));myQ.push(newInt(6));myQ.push(newInt(3));现在我如何编写一个比较函数来让那些在Q中正确排序?或者,有人可以建议替代策略吗?我真的需要priority_que

c++ - main.cc :5:30: fatal error: folder/file. h: 没有那个文件或目录

当我在Ubuntu终端中输入make时,我得到:main.cc:5:30:fatalerror:folder/file.h:Nosuchfileordirectory文件夹在工作目录下,文件.h在指定文件夹下。当我输入ls时,它还会列出我工作目录中的文件夹和文件。奇怪的是,当我在geany中打开它并要求它在#include它发现它没有问题,但是当它构建它时我得到了错误。是否需要设置一个标志以便它包含文件夹?如果是这样,那会是什么样子? 最佳答案 这在一定程度上取决于您的C编译器,但“通常”在您使用包含文件时语法编译器只会在您在命令行

c++ - 在 main 之前调用的预定义函数

我不明白如何以及何时调用此预定义函数sqrt(),如果我定义自己的函数sqrt()也是如此>它显示了一个编译错误,所以为什么预定义函数调用有效而对用户定义函数的调用失败,尽管这两个代码都位于我的可执行文件的(TEXT)部分。#includeintx=sqrt(16);intmain(){printf("x=%d\n",x);return0;}输出:x=4;当我调用我定义的sqrt()函数时出现以下错误,但当我使用预定义函数时不会出现相同的错误错误:初始化元素不是常量 最佳答案 如果您定义自己的sqrt函数,它将与math.h中已经定

c++ - 奇怪的编译器错误 : "undefined reference to ' main'"

谁能告诉我这是什么意思?/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o:Infunction`_start':(.text+0x18):undefinedreferenceto`main'collect2:ldreturned1exitstatusmake:***[program]Error1我的make文件如下所示:program:main.orender.oscreenwriter.og++-omain.orender.oscreenwriter.o-lSDLmain.o:main.cpprender

c++ - 如何在 main() 完成后调用 C++ 函数

我正在开发一个应该对主程序透明运行的C++工具。即:如果用户简单地将工具链接到他的程序,该工具将被激活。为此,我需要调用两个函数,函数a(),在main()获得控制之前,函数b()在之后main()完成。我可以通过在我的程序中声明一个全局变量并通过a()的返回代码对其进行初始化来轻松完成第一个操作。即intv=a();但是我找不到在main()完成后调用b()的方法?有没有人能想到一种方法来做到这一点?该工具在Windows上运行,但我不想使用任何特定于操作系统的调用。谢谢你,乔治 最佳答案 使用RAII,在构造函数/析构函数中调用

c++ - 为什么我的 C++ 编译器允许递归调用 main?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Isitlegaltorecurseintomain()inC++?#includeusingnamespacestd;intmain(){staticintvar=5;std::coutgcc编译代码http://ideone.com/lIp3A.我知道main不能在C++的main内部使用。这段代码如何编译?

c++ - 为什么我们在从 main() 返回时遵循相反的约定?

我已经经历了this和this,但我在这里要问的问题是,为什么0被认为是Success?我们总是将0与false联系起来,不是吗? 最佳答案 因为失败的案例比成功的案例多。通常,我们成功的原因只有一个(因为我们成功了:)),但失败的原因有很多。所以0表示成功,其他一切都表示失败,并且该值可以用来报告原因。对于代码中的函数,这是不同的,因为您是指定接口(interface)的人,因此如果足够的话,可以只使用bool。对于main,有一个固定的返回接口(interface),可能有程序只报告成功/失败,但其他程序需要更精细的错误报告。为