stack:栈
1. #include<stack> //用来将STL的stack包含到程序中
2. stack<int> s; //是一个声明,用于生成管理int型元素的栈。在<>中指定类型,从而定义管理该类型数据的容器
3. 成员函数:
size() 返回栈的元素数
top() 返回栈顶的元素
pop() 从栈中取出并删除元素
push(x) 向栈中添加元素x
empty() 在栈为空时返回true
例题:ALDS1_3_A:Stack
queue:队列
1. #include<queue> //用来将STL的queue包含到程序中
2. queue<string> Q; //是一个声明,用于生成管理string型元素的队列。在<>中指定类型,从而定义管理该类型数据的容器
3. 成员函数:
size() 返回队列的元素数
front() 返回对头的元素
pop() 从队列中取出并删除元素
push(x) 向队列中添加元素x
empty() 在队列为空时返回true
例题:ALDS1_3B:Queue
vector:动态数组(向量)
基本概念:可以在添加元素时增加长度的数组称为动态数组或可变长数组。
1. #include<vector> //用来将STL的vector包含到程序中。
2. vector<double> V //是一个声明,用于生成管理double型元素的向量。
//注:在访问vector中的元素(赋值或写入)时,可以与数组一样使用"[]"运算符。
3. 成员函数:
size() 返回向量的元素数
push_back(x) 在向量末尾添加元素x
pop_back() 删除向量的最后一个元素
begin() 返回指向向量开头的迭代器
end() 返回指向向量末尾(最后一个元素的后一个位置)的迭代器
insert(p, x) 在向量的位置p吃插入元素X
erase(p) 删除向量中位置p的元素
clear() 删除向量中所有元素
//注:向长度为n的vector的特定位置执行插入或删除操作时,算法复杂度为O(n)
list:表
1. #include<list> //用来将STL的list包含到程序中
2. list<char> L //是一个声明
3. 成员函数:
size() 返回表的元素数
begin() 返回指向表开头的迭代器
end() 返回指向表末尾(最后一个元素的后一个位置)的迭代器
push_front(x) 在表的开头添加元素x
push_back(x) 在表的末尾添加元素x
pop_front() 删除位于表开头的元素
pop_back() 删除位于表末尾的元素
insert(p, x) 在表的位置p处插入元素x
erase(p) 删除表中位置p的元素
clear() 删除表中所有元素
list与vector的比较:
- 都可以通过"[ ]"运算符直接访问特定元素, 也可以用迭代器逐个访问。
- list的特有功能:元素的插入和删除操作只需O(1)就可以完成。