C++初阶学习 第十二弹——stack与queue的介绍和使用
目次一、stack(栈)
1.栈的概念:
2.成员函数包罗:
3.栈的使用示例:
4. 使用时的注意事项:
二.queue(队列)
1.队列的概念
2.成员函数
3.队列的使用示例
4.使用时的注意事项
三.总结
一、stack(栈)
1.栈的概念:
C++中的stack是一种遵循后进先出原则的容器适配器。它提供了一系列标准的操纵,使得用户可以方便地实现栈这种数据结构。
在C++标准库中,stack并不直接暴露给用户,而是作为<stack>头文件中stack模板类的声明。这个类是std::deque的封装,因此默认情况下,栈是通过双端队列实现的。但是,用户也可以指定其他的容器作为栈的底层结构,好比std::vector或std::list。
https://i-blog.csdnimg.cn/direct/c20a7280b90f418a921ee384ee6fe1d7.png
2.成员函数包罗:
https://i-blog.csdnimg.cn/direct/6116d09f1ae643608126ca2242ead9c0.png
3.栈的使用示例:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<stack>
using namespace std;
int main()
{
std::stack<int> L;
// 压入一些数字
L.push(1);
L.push(2);
L.push(3);
// 打印栈顶元素
std::cout << "栈顶元素: " << L.top() << std::endl;
// 弹出栈顶元素
L.pop();
std::cout << "栈顶元素: " << L.top() << std::endl;
// 检查栈是否为空
if (L.empty()) {
std::cout << "栈为空" << std::endl;
}
else {
std::cout << "栈不为空,栈中有 " << L.size() << " 个元素" << std::endl;
}
return 0;
} https://i-blog.csdnimg.cn/direct/cf4ab28629e940f49b66dda7d21a7db9.png
4. 使用时的注意事项:
确保不要超过栈的容量,否则可能会导致溢出。如果你需要频仍地访问栈中的元素,而不是仅仅举行 push 和 pop 操纵,可能需要思量使用其他数据结构。在模拟实现栈时,要注意内存管理,克制内存走漏。
二.queue(队列)
1.队列的概念
queue是一种遵循先进先出原则的容器适配器。它提供了一系列标准的操纵,使得用户可以方便地实现队列这种数据结构
https://i-blog.csdnimg.cn/direct/31a1f686fb834122a91dad7713b741c0.png
2.成员函数
https://i-blog.csdnimg.cn/direct/2f5305ae9e93421a9c99b5a5d4c48f86.png
3.队列的使用示例
#include <iostream>
#include <queue>
int main() {
std::queue<int> numbers;
// 插入一些数字
numbers.push(1);
numbers.push(2);
numbers.push(3);
// 打印队列的第一个元素
std::cout << "队列的第一个元素: " << numbers.front() << std::endl;
// 打印队列的最后一个元素
std::cout << "队列的最后一个元素: " << numbers.back() << std::endl;
// 弹出队列的第一个元素
numbers.pop();
std::cout << "队列的第一个元素: " << numbers.front() << std::endl;
// 检查队列是否为空
if (numbers.empty()) {
std::cout << "队列为空" << std::endl;
} else {
std::cout << "队列不为空,队列中有 " << numbers.size() << " 个元素" << std::endl;
}
return 0;
} https://i-blog.csdnimg.cn/direct/b870e85910234d6c93a7e3fc6381a27c.png
4.使用时的注意事项
确保不要超过队列的容量,否则可能会导致溢出。如果你需要频仍地访问队列中的元素,而不是仅仅举行 push 和 pop 操纵,可能需要思量使用其他数据结构。在模拟实现队列时,要注意内存管理,克制内存走漏
三.总结
stack和queue的使用就讲到这里啦,相对简单使用起来,下节将报告stack和queue有关的模拟实现。
创作不易请大佬们互三
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]