在这里我会列举几个常用的STL数据结构与文档。
1.
v
e
c
t
o
r
vector
vector
官网文档
可变长数组(动态数组)
STL-
v
e
c
t
o
r
vector
vector 常用函数:
* |
代码 |
介绍 |
1 |
v.push_back(int num) |
从队后插入一个元素 |
2 |
v.pop_back() |
删除最后一个元素 |
5 |
v.begin() |
返回数组第一个数的位置(指针) |
6 |
v.end() |
返回数组最后一个数的位置(指针) |
5 |
v.empty() |
返回数组是否为空 |
6 |
v.size() |
返回数组元素的个数 |
2.
q
u
e
u
e
queue
queue
官网文档
队列 - 先进先出
STL-
q
u
e
u
e
queue
queue 函数:
* |
代码 |
介绍 |
时间复杂度 |
1 |
q.push(int num) |
从队后插入一个元素 |
O
(
1
)
O(1)
O(1) |
2 |
q.pop() |
从前面删除一个元素 |
O
(
1
)
O(1)
O(1) |
3 |
q.front() |
返回队首元素 |
O
(
1
)
O(1)
O(1) |
4 |
q.back() |
返回队尾元素 |
O
(
1
)
O(1)
O(1) |
5 |
q.empty() |
返回队列是否为空 |
O
(
1
)
O(1)
O(1) |
6 |
q.size() |
返回队列元素的个数 |
O
(
1
)
O(1)
O(1) |
3.priority_queue
官网文档
优先队列 - 返回最大的一个元素
STL-priority_queue
* |
代码 |
介绍 |
时间复杂度 |
1 |
pq.push(int num) |
向队列插入一个元素 |
O
(
L
o
g
n
)
O(Log_{n})
O(Logn) |
2 |
pq.pop() |
删除队列中最大的元素 |
O
(
L
o
g
n
)
O(Log_{n})
O(Logn) |
3 |
pq.top() |
返回队列中最大的元素 |
O
(
1
)
O(1)
O(1) |
4 |
pq.empty() |
返回队列是否为空 |
O
(
1
)
O(1)
O(1) |
5 |
pq.size() |
返回队列元素的个数 |
O
(
1
)
O(1)
O(1) |
4.map
官网文档
字典 - 用来记录关键字
map包含一个键和值,一般使用键获取值,一般在一些要记录的字符串或者数组太长的时候使用,如果觉得时间复杂度不够可以改成unordered_map
用法基本一样,但是实现方式不同。
STL-map
* |
代码 |
介绍 |
1 |
mp[x]=num |
修改/添加一个键为x值为num的字典 |
2 |
mp[x] |
获取键为x的值 |
3 |
mp.count(x) |
获取键为x的字典是否存在 |
4 |
mp.empty() |
返回队列是否为空 |
5 |
mp.size() |
返回队列元素的个数 |