所有数据结构C++STL
时间: 2023-11-14 14:49:53 浏览: 51
C++STL(Standard Template Library)是C++标准库的一部分,它提供了许多常用的数据结构和算法,使得C++程序的编写更加高效、简洁、可读性更强。下面介绍一些常用的数据结构:
1. vector:动态数组,支持在尾部插入和删除元素,也可以通过下标访问元素。
2. list:双向链表,支持在任意位置插入和删除元素,但是不能通过下标访问元素。
3. deque:双端队列,支持在头尾插入和删除元素,也可以通过下标访问元素。
4. stack:栈,支持在顶部插入和删除元素,栈顶元素是最后一个被插入的元素。
5. queue:队列,支持在尾部插入和头部删除元素,队列头元素是最先被插入的元素。
6. priority_queue:优先队列,支持在队尾插入元素,且每次取出的元素都是当前队列中最大(或最小)的元素。
除了上述常用的数据结构,C++STL还提供了一些其他的数据结构,如set、map、unordered_set、unordered_map等,它们都有不同的使用场景和特点。同时,C++STL还提供了很多常用的算法,如排序、查找、遍历等,可以方便地对数据结构进行操作。
相关问题
C++所有数据结构STL代码
以下是 C++ STL 中常用的数据结构的代码:
### vector (动态数组)
```cpp
#include <vector>
using namespace std;
vector<int> v; // 声明一个空的 vector
// 添加元素
v.push_back(1);
v.push_back(2);
v.push_back(3);
// 访问元素
v[0]; // 1
v[1]; // 2
v[2]; // 3
// 遍历元素
for(int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
```
### stack (栈)
```cpp
#include <stack>
using namespace std;
stack<int> s; // 声明一个空的栈
// 添加元素
s.push(1);
s.push(2);
s.push(3);
// 访问元素
s.top(); // 3
// 弹出栈顶元素
s.pop(); // 移除 3
// 栈是否为空
s.empty(); // false
```
### queue (队列)
```cpp
#include <queue>
using namespace std;
queue<int> q; // 声明一个空的队列
// 添加元素
q.push(1);
q.push(2);
q.push(3);
// 访问队首元素
q.front(); // 1
// 弹出队首元素
q.pop(); // 移除 1
// 队列是否为空
q.empty(); // false
```
### priority_queue (优先队列)
```cpp
#include <queue>
using namespace std;
priority_queue<int> pq; // 声明一个空的优先队列
// 添加元素
pq.push(1);
pq.push(3);
pq.push(2);
// 访问队首元素
pq.top(); // 3
// 弹出队首元素
pq.pop(); // 移除 3
// 优先队列是否为空
pq.empty(); // false
```
### map (映射/字典)
```cpp
#include <map>
using namespace std;
map<string, int> mp; // 声明一个空的映射
// 添加元素
mp["one"] = 1;
mp["two"] = 2;
mp["three"] = 3;
// 访问元素
mp["two"]; // 2
// 遍历元素
for(auto it = mp.begin(); it != mp.end(); it++) {
cout << it->first << " " << it->second << endl;
}
```
### set (集合)
```cpp
#include <set>
using namespace std;
set<int> s; // 声明一个空的集合
// 添加元素
s.insert(1);
s.insert(2);
s.insert(3);
// 访问元素
*s.find(2); // 2
// 遍历元素
for(auto it = s.begin(); it != s.end(); it++) {
cout << *it << " ";
}
```
以上是 C++ STL 中常用的数据结构的代码示例,可以根据实际需要进行调整和改进。
C++STL中数据结构
C++STL(Standard Template Library)中包含了许多常用的数据结构,以下是一些常见的数据结构:
1. vector:动态数组,可以在尾部快速插入和删除元素。
2. list:双向链表,可以在任意位置快速插入和删除元素。
3. deque:双端队列,可以在两端快速插入和删除元素。
4. stack:栈,遵循先进后出(LIFO)的原则。
5. queue:队列,遵循先进先出(FIFO)的原则。
6. priority_queue:优先队列,按照元素的优先级进行排序。
7. set:集合,存储唯一的元素,并按照一定的顺序进行排序。
8. multiset:多重集合,可以存储相同的元素,并按照一定的顺序进行排序。
9. map:映射,存储键值对,键唯一,并按照键的顺序进行排序。
10. multimap:多重映射,可以存储相同的键,并按照键的顺序进行排序。
除了以上常见的数据结构,STL还提供了一些其他的数据结构和算法,如unordered_set、unordered_map、bitset等。这些数据结构和算法都被封装在不同的头文件中,使用时需要包含相应的头文件。