将结构体加入队列的方法

将结构体加入队列的步骤:

(1)定义结构体。

(2)创建一个queue对象。

(3)使用queue的成员函数push()将结构体添加到队列。

这里面的重点在于用push将结构体加入队列时参数的写法,其实它的参数就是一个结构体的实例。因此其写法与结构体的初始化方式相同,有两种常见写法:

1.利用结构体构造函数初始化

这种方式需要先在结构体中写个了构造函数,然用利用构造函数对结构体进行初始化。

这种方式需要先在结构体中写个了构造函数,然用利用构造函数对结构体进行初始化。
struct point {
    int x, y;
    point (int x_, int y_) : x(x_), y(y_) {} //结构体构造函数
};
queue <point> q; //声明名为q的队列,用于存储point类型的对象。
q.push(point (9, 5));

2.利用列表初始化

列表初始化也称花括号初始化,这种语法允许直接在需要对象的地方使用花括号来初始化其成员,而无需显式调用构造函数。这种方式是在C++11才开始支持的初始化方式。

struct point {
    int x, y;
};
queue <point> q;
q.push({2, 7}); // 使用列表初始化来创建 point 对象

最后一行代码也可以写成下面这种形式:

q.push((point){2, 7});

但这里指定结构体类型是没有必要的,因为编译器可以通过上一行代码自动推导参数的类型为point型,因此前者写法更为简洁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金创想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值