C++编程:stack, queue, vector基本操作与示例

需积分: 0 4 下载量 54 浏览量 更新于2024-08-05 收藏 1.13MB PDF 举报
"C++中stack,queue,vector的简单用法1" C++是面向对象的编程语言,提供了多种数据结构来高效地管理内存和数据。本文主要介绍了C++中的三种容器:stack(栈)、queue(队列)和vector(向量),这些都是C++标准模板库(STL)的一部分,用于实现特定类型的动态数组。 ### 栈(Stack) 栈是一种后进先出(LIFO, Last In First Out)的数据结构。在C++中,`stack`是一个容器适配器,它基于其他容器(如`vector`或`deque`)提供栈的操作。以下是`stack`的一些关键操作: 1. **引入头文件**:在C++中,使用`#include <stack>`引入栈相关的功能。 2. **创建栈对象**:可以使用`stack<数据类型> 栈名;`来创建一个栈对象,例如`stack<int> s;` 3. **push()**:将元素压入栈顶,例如`s.push(i);` 4. **pop()**:移除栈顶元素,例如`s.pop();` 5. **empty()**:检查栈是否为空,如果为空返回`true`,否则返回`false`。 6. **size()**:返回栈中元素的数量。 7. **top()**:返回栈顶元素,但不移除它。 8. **实例代码**:给出一个简单的例子,用于演示如何使用栈进行基本操作,包括压入元素、查看栈的大小、弹出元素并检查是否为空。 ### 队列(Queue) 队列是一种先进先出(FIFO, First In First Out)的数据结构。在C++中,`queue`也是一个容器适配器,其操作方式与现实生活中的排队类似。以下是一些队列的关键操作: 1. **引入头文件**:使用`#include <queue>`引入队列相关功能。 2. **创建队列对象**:`queue<数据类型> 队列名;` 3. **push_back()**(非标准方法,但底层容器可能提供):在队列末尾添加元素。 4. **push()**:在队列尾部插入元素。 5. **pop()**:移除队列头部的元素。 6. **empty()**:检查队列是否为空。 7. **size()**:返回队列中元素的个数。 8. **front()**:返回队列的第一个元素。 9. **back()**:返回队列的最后一个元素。 ### 向量(Vector) 向量是动态数组,可以自动调整大小。它是C++ STL中最常用的容器之一,提供随机访问和高效的插入/删除操作。 1. **引入头文件**:`#include <vector>` 2. **创建向量对象**:`vector<数据类型> 向量名;` 3. **push_back()**:在向量末尾添加元素。 4. **pop_back()**:移除向量的最后一个元素。 5. **at()**:安全访问向量中指定索引的元素。 6. **operator[]**:不安全但快速访问向量中的元素。 7. **begin()** 和 **end()**:分别返回向量的迭代器,表示第一个和超出最后一个元素的位置。 8. **size()**:返回向量中元素的数量。 9. **empty()**:检查向量是否为空。 10. **insert()** 和 **erase()**:插入或删除向量中的元素。 在实际编程中,这些数据结构各有其应用场景,例如栈常用于表达式求值、函数调用等,队列常用于任务调度,而向量则广泛用于各种需要动态数组的场合。理解并熟练运用它们,对于提升C++编程能力至关重要。