详细介绍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++中线性表的概念
