草庐IT

递归图

全部标签

c++ - 在 std::function 上递归应用 std::bind 的问题

给定一个函数f(x,y,z)我们可以将x绑定(bind)到0,得到一个函数g(y,z)==f(0,y,z)。我们可以继续这样做并得到h()=f(0,1,2)。在C++语法中是#include#includevoidfoo(inta,longb,shortc){std::coutbar1=foo;std::functionbar2=std::bind(bar1,0,std::placeholders::_1,std::placeholders::_2);std::functionbar3=std::bind(bar2,1,std::placeholders::_1);std::funct

c++ - 使用包含不完整类型的 `boost::variant` 递归定义和访问 `std::vector` - libstdc++ 与 libc++

我正在尝试定义和访问“递归”boost::variant使用incomplete包装类和std::vector作为我的间接技巧。我的实现适用于libstdc++,但不适用于libc++。这是我定义变体的方式:structmy_variant_wrapper;usingmy_variant_array=std::vector;//;structmy_variant_wrapper{my_variant_v;templatemy_variant_wrapper(Ts&&...xs):_v(std::forward(xs)...){}};我正在使用std::vector引入间接(以便动态分配

C++ 相互递归变体类型(再次)

我遇到的问题类似于此处描述的问题:C++MutuallyRecursiveVariantType我正在尝试用C++创建一个JSON表示。许多库已经提供了非常快的优秀JSON表示和解析器,但我并没有重新发明这个轮子。我需要创建一个支持特定条件下某些空间优化的C++JSON表示。简而言之,当且仅当JSON数组包含同质数据时,而不是将每个元素存储为臃肿的变体类型,我需要原生类型的紧凑存储。我还需要支持异构数组和标准嵌套JSON对象。以下是代码的“如果愿望是马,乞丐会骑”的版本,旨在清楚地说明意图,但显然是错误的,因为在任何声明存在之前就使用了类型。我想避免在类型中多次指定相同的信息(即数组、

C++ 分支递归结构?

我有以下内容。该结构已原型(prototype)化,因此可以正常编译。structvertexNodeInfo{vectornode;};我正在尝试写一个八叉树的东西。我想要做的是使用递归函数继续向每个节点添加一个节点,直到我到达特定点,此时该函数而不是添加另一个节点,而是添加一个叶子。如果可能的话,当没有进一步添加节点或叶子时,我想不使用内存。也许模板在这种情况下会有所帮助,但我不确定如何使用它们...我认为我没有很好地解释自己。这是一个图表:我不知道我的要求是不可能实现的,还是太令人困惑而无法理解,或者只是愚蠢,但我自己无法弄清楚。很抱歉,我无法更好地解释它。我使用的是C++98/

c++ - 在 C++ 中抓取递归 ntfs 目录的最快方法

我写了一个小型爬虫来扫描和求助目录结构。它基于dirent(它是FindNextFileA的一个小包装)在我的第一个基准测试中,它出奇地慢:4500个文件大约需要123473毫秒(thinkpadt60p本地三星320GB2.5"HD)。在123473毫秒内找到121481个文件这个速度正常吗?这是我的代码:inttestPrintDir(std::stringstrDir,std::stringstrPattern="*",boolrecurse=true){structdirent*ent;DIR*dir;dir=opendir(strDir.c_str());intretVal=

c++ - 递归模板定义

我有一个递归模板定义(我刚刚编造了那个术语)。我认为代码可以更好地解释它。templateclassDomain{public:Xbegin;Xend;Domain(X_begin,X_end):begin(_begin),end(_end){//...}boolContains(constX&t)const{//...}};templateclassIFunction{public:DomainmyDomain;public:IFunction(constDomain&dom):myDomain(dom){}virtualYCalc(constX&IV)const=0;virtual

c++ - 递归函数占用的栈大小维度

对于使用递归函数的C++程序,我如何评估该函数占用的动态堆栈大小? 最佳答案 voidrecursive_function(){intdummy;cout观察&dummy的值随着堆栈使用量的增加而上升(或者如果您的堆栈向下增长则下降)。 关于c++-递归函数占用的栈大小维度,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/15592456/

C++ 我需要编写一个将十六进制转换为十进制并使用递归的函数,但我不断收到运行时错误

这是一个类,所以它必须使用递归,我已经迭代地编写了一个工作代码,但我无法让它在递归中工作,我真的迷路了。我已经为此工作了一个星期。任何指导或建议都会非常有帮助。这是我的函数,我需要将十六进制作为字符指针并输出它对应的十进制。我经常遇到堆栈溢出或内存分配运行时错误,任何人都可以找出问题所在并引导我朝着正确的方向前进吗?inthexToDecimal(constchar*hex,intoffset,intpower){if(offset>=0){hexChar=*(hex+offset);if(isalpha(hexChar)){hexChar=toupper(hexChar);hexNu

八皇后问题,秒懂递归回溯(有图详解|c语言)

目录👸🏻前言👸🏻题目介绍👸🏻引入:👸🏻解决思路:👸🏻理论存在,实践开始!👸🏻难点1:如何表示对角线被占领?👸🏻难点2:如何用递归的方法来放皇后?👸🏻难点3:如何实现回溯?👸🏻难点4:如何实现皇后位置的输出?👸🏻全部代码如下:👸🏻总结: Love is worth years.❤热爱可抵岁月漫长。 前言各位和我一样的刚学完递归的小白们,是不是突然遇见了一个大BOSS,八皇后👸🏻问题!!把自信的说着“老子递归学好了!”的你一棒子打回了出生点,就像你刚玩只狼遇到的那个大胖子,刚玩原神遇到的雪山。今天,我就和大家一起学习一下这个著名的八皇后👸🏻问题。题目介绍八皇后问题,是一个古老而著名的问题,是回溯算

c++ - 递归模板元编程

为了计算阶乘,我可以使用:templatestructfactorial{enum{value=N*factorial::value};};templatestructfactorial{enum{value=1};};//baseCase然后就可以像下面这样使用了x=factorial::value;那么,是否有可能得到类似的递归模板unsignedLog2(unsignedn,unsignedp=0){return(n我能想到的是:templatestructLog2{enum{value=Log2::value};};但是不知道怎么设置一个basecase。templatestr