详细介绍C++STL中的栈(stack)、队列(queue)、链表(list)、向量(vector)等容器 C++ STL 中提供了许多容器,包括栈(stack)、队列(queue)、链表(list)、向量
C++ STL 中提供了许多容器,包括栈(stack)、队列(queue)、链表(list)、向量(vector)等。下面将分别介绍这些容器的基本用法和特点。
栈(stack)
栈是一种后进先出(LIFO)的数据结构,只允许在栈顶插入和删除元素。在 C++ STL 中,栈容器通过 stack
类实现。栈的基本操作包括入栈、出栈、取栈顶元素等。
以下是一个简单的示例,演示了如何使用栈容器:
#include <iostream> #include <stack> int main() { std::stack<int> s; s.push(1); s.push(2); s.push(3); while (!s.empty()) { std::cout << s.top() << " "; s.pop(); } std::cout << std::endl; return 0; }
在以上代码中,首先创建了一个栈容器 s
,并依次向栈中插入了三个整数。然后,使用 top
函数访问栈顶元素,使用 pop
函数删除栈顶元素,并不断循环,直到栈为空为止。
输出结果为:
3 2 1
队列(queue)
队列是一种先进先出(FIFO)的数据结构,只允许在队尾插入元素,在队头删除元素。在 C++ STL 中,队列容器通过 queue
类实现。队列的基本操作包括入队、出队、取队头元素等。
以下是一个简单的示例,演示了如何使用队列容器:
#include <iostream> #include <queue> int main() { std::queue<int> q; q.push(1); q.push(2); q.push(3); while (!q.empty()) { std::cout << q.front() << " "; q.pop(); } std::cout << std::endl; return 0; }
在以上代码中,首先创建了一个队列容器 q
,并依次向队列中插入了三个整数。然后,使用 front
函数访问队头元素,使用 pop
函数删除队头元素,并不断循环,直到队列为空为止。
输出结果为:
1 2 3
链表(list)
链表是一种基本的数据结构,可以动态地存储数据,并支持快速插入和删除操作。在 C++ STL 中,链表容器通过 list
类实现。链表的基本操作包括插入、删除、访问等。
以下是一个简单的示例,演示了如何使用链表容器:
#include <iostream> #include <list> int main() { std::list<int> l { 1, 2, 3 }; l.push_back(4); for (auto it = l.begin(); it != l.end(); it++) { std::cout << *it << " "; } std::cout << std::endl; l.pop_back(); l.push_front(0); for (auto it = l.begin(); it != l.end(); it++) { std::cout << *it << " "; } std::cout << std::endl; return 0; }
在以上代码中,首先创建了一个链表容器 l
,并向其中插入了三个整数。然后,使用 push_back
函数在链表末尾插入一个元素 4
,并使用迭代器 it
遍历链表中的所有元素。接下来,使用 pop_back
函数删除链表末尾的元素,使用 push_front
函数在链表头部插入元素 0
,并再次遍历链表中的所有元素。
输出结果为:
1 2 3 4 0 1 2 3
向量(vector)
向量是一种动态数组,可以快速地随机访问任意位置的元素。在 C++ STL 中,向量容器通过 vector
类实现。向量的基本操作包括插入、删除、访问等。
以下是一个简单的示例,演示了如何使用向量容器:
#include <iostream> #include <vector> int main() { std::vector<int> v { 1, 2, 3 }; v.push_back(4); for (int i = 0; i < v.size(); i++) { std::cout << v[i] << " "; } std::cout << std::endl; v.pop_back(); v.insert(v.begin(), 0); for (auto it = v.begin(); it != v.end(); it++) { std::cout << *it << " "; } std::cout << std::endl; return 0; }
在以上代码中,首先创建了一个向量容器 v
,并向其中插入了三个整数。然后,使用 push_back
函数在向量末尾插入一个元素 4
,使用下标操作符 []
和 size
函数访问向量中的元素。接下来,使用 pop_back
函数删除向量末尾的元素,使用 insert
函数在向量头部插入元素 0
,并使用迭代器 it
遍历向量中的所有元素。
输出结果为:
1 2 3 4 0 1 2 3
以上介绍了 C++ STL 中栈、队列、链表、向量等常见容器的基本用法和特点。这些容器在不同的场合下都有不同的用途,开发者可以根据实际需要选择合适的容器来实现所需的功能。

- 上一篇:C++中什么是 vector 容器?
- 下一篇:c++中线性表的概念