什么是 STL
STL 是 standard template library 的简写,是标准模板库
STL 里面有许多容器和函数,可以让我们快速的写出一些的数据结构或者实现一些功能
STL 真的太棒了~~~
在此篇文章里,我记录了部分容器的使用方法
对于函数的使用,将会在下一篇中记录
STL — vector
解释
vector 是一个数组的模板
用法
1 | vector <int> v; |
STL — queue/priority_queue/stack
解释
queue 是一个队列的模板
priority_queue 是一个优先队列的模板
stack 是一个栈的模板
用法
1 | queue <int> q; stack <int> q; |
优先队列 — priority_queue
1 | priority_queue <int> q; |
STL — list
解释
list 是一个双向链表的模板
用法
1 | begin()和end() |
STL — set
解释
set 是一个红黑树(一种平衡树)的模板,自带去重效果
用法
1 | begin() //返回set容器的第一个元素 |
STL — map
解释
map 提供的是一种键值对容器,里面的数据都是成对出现的, 每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值。
方法
1 | map <int, string> ID_Name; // 即一个 ID 对应一个名字,其中 ID 为 int 类型,名字为 string 类型 |
STL — pair
解释
pair 是一个储存键值对的容器
用法
1 | pair <string,double> product1 ("tomatoes",3.25); |
STL — iterator
解释
iterator 是迭代器 可以用来接收容器的地址,如 begin(),end() 等的返回值
用法
1 | vector <int> v; |
特殊说明
若在容器中存放结构,例如:
struct edge{
int v,w;
}e;
应该如此:vector
此外,若容器为 set 容器,则结构中必须重载小于号,若 set
set 中只能有两个参数,vector