C++ 结构体嵌套

该博客主要是示例如何使用结构体嵌套进行函数变量的封装传递。

主要任务是使用一个结构体包含一些目标的名称、距离、角度信息。不同场景下的目标数量是不一样的,所以不能使用固定的数组来进行存储,使用数组太大时浪费空间,太小是又担心不能正确存储信息。所以建议使用结构体嵌套的方法来进行定义,这样方便进行有效存储与传递。

嵌套结构体的定义

struct TargetInfo
{
    string TargeName;
    float angle;
    float distance;
};


struct TargetsInfos
{
    int num;
    struct TargetInfo *info;
};

在上边的程序中,我们建立了两个结构体第一个是结构体TargetInfo,该结构体中是用来存储目标的信息,其中包含字符型目标名称、float型的目标角度和距离信息。建立的第二个结构体是这批目标信息,包含的是这批目标的数量和每一个目标具体TargetInfo``结构体的信息。这里使用指针的方式进行引入。

嵌套结构体的使用

GetStruct(float num)
{
    TargetInfo Info;
    Info.angle = num;
    Info.distance = num;
    Info.TargeName = num;
    return Info;
}

    TargetsInfos infos;
    infos.size = 5;
    infos.info = new TargetInfo[infos.size];
    for(float i = 0;i < infos.size;i ++)
    {
        infos.info[(int)i] = GetStruct(i);
    }

这里我们借助一个GetStruct()函数进行简单地结构体赋值。需要注意的是:

infos.info = new TargetInfo[infos.size];这里使用的是new建立新的数组来存储目标信息,所开辟空间的大小正好可以使用目标的数量来作为判断标准进行赋值。

infos.info[(int)i] = GetStruct(i);这个是借助韩式进行赋值,也可以单个变量进行赋值,例如infos.info[1].angle = 5;

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值