C++初阶学习 第十二弹——stack与queue的介绍和使用

打印 上一主题 下一主题

主题 1588|帖子 1588|积分 4764

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目次
一、stack(栈)
1.栈的概念:
2.成员函数包罗: 
3.栈的使用示例: 
4. 使用时的注意事项:
二.queue(队列)
1.队列的概念
2.成员函数 
3.队列的使用示例
4.使用时的注意事项
三.总结

一、stack(栈)

1.栈的概念:

C++中的stack是一种遵循后进先出原则的容器适配器。它提供了一系列标准的操纵,使得用户可以方便地实现栈这种数据结构。
在C++标准库中,stack并不直接暴露给用户,而是作为<stack>头文件中stack模板类的声明。这个类是std::deque的封装,因此默认情况下,栈是通过双端队列实现的。但是,用户也可以指定其他的容器作为栈的底层结构,好比std::vector或std::list。

2.成员函数包罗: 


3.栈的使用示例: 

  1. #define _CRT_SECURE_NO_WARNINGS 1
  2. #include<iostream>
  3. #include<stack>
  4. using namespace std;
  5. int main()
  6. {
  7.         std::stack<int> L;
  8.         // 压入一些数字
  9.         L.push(1);
  10.         L.push(2);
  11.         L.push(3);
  12.         // 打印栈顶元素
  13.         std::cout << "栈顶元素: " << L.top() << std::endl;
  14.         // 弹出栈顶元素
  15.         L.pop();
  16.   std::cout << "栈顶元素: " << L.top() << std::endl;
  17.         // 检查栈是否为空
  18.         if (L.empty()) {
  19.             std::cout << "栈为空" << std::endl;
  20.         }
  21.         else {
  22.             std::cout << "栈不为空,栈中有 " << L.size() << " 个元素" << std::endl;
  23.         }
  24.        
  25.         return 0;
  26. }
复制代码
 
4. 使用时的注意事项:

 确保不要超过栈的容量,否则可能会导致溢出。如果你需要频仍地访问栈中的元素,而不是仅仅举行 push 和 pop 操纵,可能需要思量使用其他数据结构。在模拟实现栈时,要注意内存管理,克制内存走漏。
二.queue(队列)

1.队列的概念

   queue是一种遵循先进先出原则的容器适配器。它提供了一系列标准的操纵,使得用户可以方便地实现队列这种数据结构
  

2.成员函数 


3.队列的使用示例

  1. #include <iostream>
  2. #include <queue>
  3. int main() {
  4.     std::queue<int> numbers;
  5.     // 插入一些数字
  6.     numbers.push(1);
  7.     numbers.push(2);
  8.     numbers.push(3);
  9.     // 打印队列的第一个元素
  10.     std::cout << "队列的第一个元素: " << numbers.front() << std::endl;
  11.     // 打印队列的最后一个元素
  12.     std::cout << "队列的最后一个元素: " << numbers.back() << std::endl;
  13.     // 弹出队列的第一个元素
  14.     numbers.pop();
  15.    
  16.    std::cout << "队列的第一个元素: " << numbers.front() << std::endl;
  17.     // 检查队列是否为空
  18.     if (numbers.empty()) {
  19.         std::cout << "队列为空" << std::endl;
  20.     } else {
  21.         std::cout << "队列不为空,队列中有 " << numbers.size() << " 个元素" << std::endl;
  22.     }
  23.     return 0;
  24. }
复制代码

4.使用时的注意事项

   确保不要超过队列的容量,否则可能会导致溢出。如果你需要频仍地访问队列中的元素,而不是仅仅举行 push 和 pop 操纵,可能需要思量使用其他数据结构。在模拟实现队列时,要注意内存管理,克制内存走漏
  三.总结

stack和queue的使用就讲到这里啦,相对简单使用起来,下节将报告stack和queue有关的模拟实现。
创作不易请大佬们互三

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

风雨同行

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表