草庐IT

c++ - 寻找将删除空行的 C++ 代码美化器

我刚刚接管了大量格式不佳的C++代码。我正在寻找具有两个特定功能的代码美化器。删除多余的访问修饰符以一种很好的方式清理空白。例如。中间留空行功能,折叠多个空白函数中的一行,删除之间的空行函数的左/右大括号以及代码的开始/结束。这是一个典型的例子。我不想写一个,证明它不会损坏代码会花费太长时间,而且肉眼检查的方法太多。classCLASS_DECL_BASEOComStorage:publicOBase{private:protected:public:OComStorage(void);~OComStorage(void);voidThanks_Guys();

c++ - 寻找最大子数组的分而治之算法 - 如何同时提供结果子数组索引?

打扰一下,我有一个任务要解决MaximumSubArrayProblem使用BruteForceAlgorithmO(n^2),DivideandConquerO(nlogn)和Kadane'sAlgorithmO(n).(我的代码不同)。"Forexample,forthesequenceofvalues{−2,1,−3,4,−1,2,1,−5,4},thecontiguoussub-arraywiththelargestsumis[4,−1,2,1]withsum6."-FromtheWikiPage.我已经完成了Kadane和BruteForce,我需要的输出不仅仅是找到总和,还

c++ - 寻找数组中的平衡点

这个问题来自一个很棒的youtubechannel,给出了面试中可以问到的问题。基本上就是找一个数组的平衡点。这是一个最好地解释它的例子;{1,2,9,4,-1}。在这里,由于sum(1+2)=sum(4+(-1))使得9成为平衡点。在没有检查答案的情况下,我决定在想问是否可以采用更有效的方法之前实现该算法;对数组O(n)中的所有元素求和得到总和的一半O(1)从左边开始扫描数组,当sumleft大于总和的一半时停止。O(n)对右边做同样的事情,得到和右边。O(n)。如果sumleft等于sumright返回arr[size/2]否则返回-1我问这个问题是因为这个解决方案毫不费力地出现在

c++ - 在无向树中寻找路径的算法

假设我有一棵无向树,我需要在两个节点之间找到一条路径(唯一路径)。最好的算法是什么。我可能可以使用Dijkstra算法,但对于树来说可能有更好的算法。C++示例会有所帮助但不是必需的谢谢 最佳答案 假设每个节点都有一个指向其父节点的指针,那么只需从每个起始节点向根节点回溯树。最终,这两条路径必须相交。交集测试可以像维护节点地址的std::map一样简单。更新当您更新问题以指定无向树时,以上内容无效。一种简单的方法是简单地从节点#1开始执行深度优先遍历,最终您将到达节点#2。这是树的大小的O(n)。假设有一个完全通用的树,我不确定是否

c++ - 寻找对我的线程安全、无锁队列实现的批评

所以,经过一些研究,我写了一个队列。它使用固定大小的缓冲区,因此它是一个循环队列。它必须是线程安全的,而且我已尝试使其无锁。我想知道它出了什么问题,因为这些事情我自己很难预测。这是标题:templateclassLockFreeQueue{public:LockFreeQueue(uintbuffersize):buffer(NULL),ifront1(0),ifront2(0),iback1(0),iback2(0),size(buffersize){buffer=newatomic[buffersize];}~LockFreeQueue(void){if(buffer)delete

c++ - 寻找避免在类模板中创建字段的技巧

我有一个类似类的作用域守卫(这是简化的测试用例):templatestructGuard1{templateGuard1(Oopen){open();}~Guard1(){close();}};voidclose(){std::coutg1=[](){std::cout我修改了它,使得关闭表达式也可以作为lambda给出:classGuard2{std::functionclose;public:templateGuard2(Oopen,Cclose):close(close){open();}~Guard2(){close();}};intmain(){Guard2g2([](){s

c++ - GCC --gc-sections 和寻找符号依赖

我正在尝试减小我的elf可执行文件的大小。我正在使用-ffunction-sections-fdata-sections进行编译并使用-gc-sections进行链接,但它出现了一些符号我相信未使用的不会被丢弃。我可以运行GNU工具链中的一些命令来查明正在使用哪些符号以及在何处使用?工具链:GNUarm-none-eabi平台:Cortex-M4语言:C++这是我的典型构建标志:编译:arm-none-eabi-g++.exe-Wall-O3-mthumb-std=c++11-mcpu=cortex-m4-mfpu=fpv4-sp-d16-mfloat-abi=softfp-fsing

c++ - 寻找具有 64 位支持和跨平台的 C++ 可嵌入脚本语言

我正在寻找一种可在32位和64位计算机以及Windows和Linux上运行的脚本语言。我会将它嵌入到C++应用程序中,因此我更喜欢它是用C++而不是C本地编写的。我也希望脚本具有线程/异步支持。到目前为止,我看过的语言是GameMonkey、Lua和V8JavaScript引擎。迄今为止,V8JavaScript最具吸引力。我真的不想使用GameMonkey,因为据我所知,它不支持64位寻址。Lua是用C编写的,所以我可能会使用C++包装器,但我真的不喜欢混合使用C和C++代码。那么我可以考虑其他一些替代方案吗? 最佳答案 我个人更

c++ - 在 Qt 中寻找 PostMessage 功能

Win32API有一个PostMessage函数,它将消息发布到GUI消息队列的末尾,以便稍后从GUI线程处理,而不是SendMessage与调用线程同步发送和处理消息。PostMessage功能是否有Qt解决方案?一位同事建议Qt的服务器/套接字实现可以提供它;这是一个合理的方法吗? 最佳答案 检查QCoreApplication::postEvent(). 关于c++-在Qt中寻找PostMessage功能,我们在StackOverflow上找到一个类似的问题:

c++ - 寻找主要因素

#includeusingnamespacestd;voidwhosprime(longlongx){boolimPrime=true;for(inti=1;i我试图找到由Problem3指定的数字600851475143的质因数在ProjectEuler上(它要求最高素数,但我想找到所有素数)。但是,当我尝试运行这个程序时,我没有得到任何结果。它是否与我的程序处理如此大的数字所花费的时间有关,甚至与数字本身有关?另外,有什么更有效的方法可以解决这个问题?对于我在解决问题时如何转向这些更优雅的解决方案,您有什么建议吗?一如既往,谢谢! 最佳答案