deque

Deque 双端队列

295场周赛T4,01BFS用到双端队列,之前很少接触这个数据结构

Double-ended queues are sequence containers with the feature of expansion and contraction on both ends.

由此可见,双端队列也就是一个可以在front-end和back-end两端插入或删除的数据罢了

用法

  • 例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// CPP Program to implement Deque in STL
#include <deque>
#include <iostream>

using namespace std;

void showdq(deque<int> g)
{
deque<int>::iterator it;
for (it = g.begin(); it != g.end(); ++it)
cout << '\t' << *it;
cout << '\n';
}

int main()
{
deque<int> gquiz;
gquiz.push_back(10);
gquiz.push_front(20);
gquiz.push_back(30);
gquiz.push_front(15);
cout << "The deque gquiz is : ";
showdq(gquiz);

cout << "\ngquiz.size() : " << gquiz.size();
cout << "\ngquiz.max_size() : " << gquiz.max_size();

cout << "\ngquiz.at(2) : " << gquiz.at(2);
cout << "\ngquiz.front() : " << gquiz.front();
cout << "\ngquiz.back() : " << gquiz.back();

cout << "\ngquiz.pop_front() : ";
gquiz.pop_front();
showdq(gquiz);

cout << "\ngquiz.pop_back() : ";
gquiz.pop_back();
showdq(gquiz);

return 0;
}

Output

1
2
3
4
5
6
7
8
9
10
The deque gquiz is :     15    20    10    30

gquiz.size() : 4
gquiz.max_size() : 4611686018427387903
gquiz.at(2) : 10
gquiz.front() : 15
gquiz.back() : 30
gquiz.pop_front() : 20 10 30

gquiz.pop_back() : 20 10

Vector用法总结

Vector用法总结

好久没更新博客了,最近狂刷LeetCode,总结一下遇到的常用的Vector容器的用法

vector定义

  • 创建一个vector

vector<T> arr

  • 创建n个size的vector

vector<T> arr(int n)

  • 创建n个size,值全为tvector

vector<T> arr(int n, T t)

  • 拷贝另一个vector

vector<T> arr(vector<T> anotherArr)

  • 拷贝另一个vector的一部分

vector<T> arr(anotherArr.start(), anotherArr.end())

阅读更多