C++ STL stack -- queue

stack基本概念

stack是一种   先进后出(First  In  Last  Out,  FILO)   的数据结构,它只有一个出口

栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为    

栈可以判断容器是否为空: empty

站可以返回元素个数:size

栈中进入数据   --------    入栈    push

栈中弹出数据   --------    出栈    pop    

stack常用接口

复制代码
 1 #include <iostream>
 2 #include <string>
 3 #include <stack>
 4 using namespace std;
 5 //栈容器常用的对外接口
 6 /*     
 7     构造函数:
 8         stack<T> stk;                        //stack采用模板类实现,stack对象的默认构造形式
 9         stack(const stack& stk);            //拷贝构造函数
10     赋值操作:
11         stack& operator=(const stack& stk); //重载等号操作符
12     数据存取:
13         push(elem);     //像栈顶添加蒜素
14         pop();            //从栈顶移除第一个元素
15         top();            //返回栈顶操作
16     大小操作:
17         empty();        //判断堆栈是否为空
18         size();            //返回栈的大小
19 */
20 void test()
21 {
22     //先进后出数据结构
23     stack<int>s;
24     // 入栈
25     s.push(10);
26     s.push(20);
27     s.push(30);
28     s.push(40);
29     //栈不为空,查看栈顶,执行出栈
30     while (!s.empty())
31     {
32         cout << "栈顶" << s.top() << "  栈的大小" << s.size() << endl;
33         s.pop();
34     } 
35     cout << "全部出栈" << endl;
36 }
37 int main()
38 {
39     test();
40     system("pause");
41     return 0;
42 }
复制代码

queue基本概念    

Queue是一种    先进先出(First  In  First  Out,  FIFO)  的数据结构 ,它有两个出口

队列容器从一端新增元素, 从另一端移除元素

队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为  

队列中进数据      ---   入队   push

队列中出数据      ---   出队   pop

复制代码
 1 #include <iostream>
 2 #include <string>
 3 #include <queue>
 4 using namespace std;
 5 //队列容器常用的对外接口
 6 /*     
 7     构造函数:
 8         queue<T> que;                        //queue采用模板类实现,queue对象的默认构造形式
 9         queue(const queue& que);            //拷贝构造函数
10     赋值操作:
11         queue& operator=(const queue& que); //重载等号操作符
12     数据存取:
13         push(elem);                //往队尾添加元素
14         pop();                    //从队头移除第一个元素
15         back();                    //返回最后一个元素
16         front();                //返回第一个元素
17     大小操作:
18         empty();                //判断堆栈是否为空
19         size();                    //返回栈的大小
20 */
21 class Person
22 {
23 public:
24     Person(string name, int age)
25     {
26         this->m_Age = age;
27         this->m_Name = name;
28     }
29     string m_Name;
30     int m_Age;
31 };
32 void test()
33 {
34     //创建队列
35     queue<Person> q;
36     //准备数据
37     Person p1("张11", 100);
38     Person p2("李22", 200);
39     Person p3("老33", 300);
40     Person p4("老44", 400);
41     //入队
42     q.push(p1);
43     q.push(p2);
44     q.push(p3);
45     q.push(p4);
46     //队列不为空, 查看队头, 查看队尾,出队
47     while (!q.empty())
48     {
49         //队列大小
50         cout << "队列大小:" << q.size() << endl;
51         //查看队头
52         cout << "队头元素:" << q.front().m_Name << "  年龄:" << q.front().m_Age << endl;
53         //查看队尾
54         cout << "队尾元素:" << q.back().m_Name << "  年龄:" << q.back().m_Age << endl;
55         //出队
56         q.pop();
57     }
58     cout << "队列大小" << q.size() << endl;
59 }
60 int main()
61 {
62     test();
63     system("pause");
64     return 0;
65 }
复制代码

posted on   廿陆  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示