C++学习 --queue

目录

1, 什么是queue

2, 创建queue

2-1, 标准数据类型

2-2, 自定义数据类型

2-3, 其他创建方式

3, 操作stack

3-1, 赋值

3-2, 插入元素(push)

3-3, 查询元素

3-4, 删除元素

3-5, 判断是否为空

3-6, 交换

3-7, 获取长度


1, 什么是queue

C++中的容器数据类型, 叫着队列容器, 元素是先进先出, 不支持遍历

2, 创建queue

通过queue<数据类型> 对象名, 可创建queue, 数据类型可以是标准数据类型, 也可以是自定义类型

2-1, 标准数据类型

//queue中元素数据类型为string
queue<string> q1;

2-2, 自定义数据类型

//queue中元素的数据类型为Myclass
queue<Myclass> q1;

2-3, 其他创建方式

queue<Myclass> q1;
//通过拷贝构造方式, 将一个已存在的q1, 拷贝给q2
queue<Myclass> q2(q1);

3, 操作stack

3-1, 赋值

由于queue是一个容器, 只支持将一个queue赋值给另外一个queue

queue<Myclass> q2 = q1;

3-2, 插入元素(push)

通过对象名.push(元素), 向queue中插入元素

Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
queue<Myclass> q1;
q1.push(m1);
q1.push(m2);
q1.push(m3);

3-3, 查询元素

通过对象名.front(), 获取头部元素, 通过对象名.back(), 获取尾部元素

Myclass m1("aaa", 1);
Myclass m2("bbb", 2);
Myclass m3("ccc", 3);
queue<Myclass> q1;
queue<Myclass> q2;
q1.push(m1);
q1.push(m2);
q1.push(m3);
cout << q1.front().m_name << endl;
cout << q1.back().m_name << endl;

3-4, 删除元素

通过对象名.pop(), 删除头部元素

q1.pop();

3-5, 判断是否为空

可通过对象名.empty(), 判断队列是否为空, 为空返回0, 不为空返回1

cout << q1.empty() << endl;

3-6, 交换

可通过对象名1.swap(对象名2), 交换两个栈的元素

q1.swap(q2);

3-7, 获取长度

可通过q1.size(), 删除栈顶元素

cout << q1.size() << endl;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值