刷Leetcode,应知必会的几种容器用法表

STL中vector、stack、queue的基本用法

最近几天开始刷LeetCode,除了自己分知识点做以外,每日一题也有在跟进做,希望自己能坚持。
个人感觉以下列出的vector、stack、queue用法在刷题时基本够用,属于比较实用的部分,若不完善日后也会补充。

关于这些容器的详细介绍,包括如何构造、各种赋值存取操作,我会在近期专门开展blog配合code介绍。

1.vector

vector是向量类型,可以存放许多类型的数据。
头文件:#include<vector>

相关操作函数

函数名 内容
empty() 判断向量是否为空
size() 返回向量中元素的数目
push_back() 在向量末尾增加元素
emplace_back() c++11新特性,在向量末尾增加元素,原地构造元素,无需触发拷贝构造和转移构造
pop_back() 移除向量尾部元素
front() 返回向量顶部元素

2.stack

stack栈是一个先进后出FILO的数据结构。
头文件:#include<stack>

相关操作函数

函数名 内容
empty() 判断栈是否为空
size() 返回栈中元素的数目
push() 在栈顶增加元素
pop() 移除栈顶元素
top() 返回栈顶元素

3.queue

queue队列是一个先进先出FIFO的数据结构。
头文件:#include<queue>

相关操作函数

函数名 内容
empty() 判断队列是否为空
size() 返回队列中元素的数目
push() 在队尾增加元素
pop() 移除队头的元素
front() 返回队头的元素

优先级队列,实际上就是堆。可以以O(1)的时间取出最小/最大的元素,以O(logn)时间删除元素。
举个例子,小顶堆。
priority_queue<int, vector<int>, greater<int> > pq;

函数名 内容
empty() 判断队列是否为空
size() 返回队列中元素的数目
push() 在队尾增加元素
pop() 移除队头的元素
top() 返回队头的元素


欢迎转载,表明出处。

猜你喜欢

转载自blog.csdn.net/qq_36583373/article/details/108260371