yuAriellexi 2019-08-13 23:19 采纳率: 100%
浏览 685
已结题

给struct里的vector赋值

/*
         x
      a  b  c

x无关
x有关        
 */

#include <iostream>
#include <vector>
using namespace std;
struct staff
{
    int happy;
    vector<staff> subs;
    staff(int h)
    {
        happy = h;
    }
};

struct info
{
    int laimaxhappy;
    int bulaimaxhappy;
    info(int lai, int bulai)
    {
        laimaxhappy = lai;
        bulaimaxhappy = bulai;
    }
};

info process(staff* s)
{
    int lai = s->happy;
    int bulai = 0;
    if(s->subs.size() == 0)
    {
        return info(s->happy, 0);
    }
    else
    {
        for(staff it : s->subs)
        {
            info subinfo = process(&it);
            lai += subinfo.bulaimaxhappy;
            bulai += max(subinfo.laimaxhappy, subinfo.bulaimaxhappy);           
        }
        return info(lai, bulai);
    }
}

int getMax(staff* boss)
{
    info treeInfo = process(boss);
    return max(treeInfo.laimaxhappy, treeInfo.bulaimaxhappy);
}

int main()
{
    staff s1(1);
    staff s2(2);
    staff s3(3);
    staff s4(4);
    staff s5(5);

    vector<staff> v;
    v.push_back(s1);
    v.push_back(s2);
    v.push_back(s3);
    v.push_back(s4);
    v.push_back(s5);

    vector<staff> v1sub;
    v1sub.push_back(s2);
    v1sub.push_back(s3);
    s1.subs = v1sub;

    vector<staff> v2sub;
    v2sub.push_back(s4);
    s2.subs = v2sub;///期望s2.subs这个vector里有一个s4,可是debug发现没有

    vector<staff> v3sub;
    v3sub.push_back(s5);
    s3.subs = v3sub;///期望s3.subs这个vector里有一个s5,可是debug发现没有

    cout << getMax(&s1) << endl;


}

  • 写回答

2条回答 默认 最新

  • 白色一大坨 2019-08-14 09:46
    关注

    先不说你程序设计的怎么样,你后面的s2.subs和s3.subs里面都有s4和s5你却说没有,我觉得你应该是debug里面不会看变量
    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型