目录
一、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.栈的使用示例:
#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;}
4. 使用时的注意事项:
确保不要超过栈的容量,否则可能会导致溢出。如果你需要频繁地访问栈中的元素,而不是仅仅进行 push 和 pop 操作,可能需要考虑使用其他数据结构。在模拟实现栈时,要注意内存管理,避免内存泄漏。
二.queue(队列)
1.队列的概念
queue是一种遵循先进先出原则的容器适配器。它提供了一系列标准的操作,使得用户可以方便地实现队列这种数据结构
2.成员函数
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;}
4.使用时的注意事项
确保不要超过队列的容量,否则可能会导致溢出。如果你需要频繁地访问队列中的元素,而不是仅仅进行 push 和 pop 操作,可能需要考虑使用其他数据结构。在模拟实现队列时,要注意内存管理,避免内存泄漏
三.总结
stack和queue的使用就讲到这里啦,相对简单使用起来,下节将讲述stack和queue有关的模拟实现。
创作不易请大佬们互三