苏州吴中网站建设,大一网页设计实训总结,网站建设 镇江,青岛外贸公司联系方式标准模版库STL 目录 算法库 栈 队列 向量
映射 列表 双向链表 集合
Iterator 送代器 algorithm 算法库
max, min 用于找出一组值中的最大值和最小值
swap 用于交换两个变量的值
sort 用于对一个范围内的元素进行排序
lower_bound, upper_bound 用于在已排序的容器…标准模版库STL 目录 算法库 栈 队列 向量
映射 列表 双向链表 集合
Iterator 送代器 algorithm 算法库
max, min 用于找出一组值中的最大值和最小值
swap 用于交换两个变量的值
sort 用于对一个范围内的元素进行排序
lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界
unique(a,an)-a 用于在一个范围内删除相邻重复的元素返回不重复元素的范围终点
Next_permutation 用于获取一个序列的下一个排列
Prev_permutation 用于获取一个序列的前一个排列
#include iostream
#include algorithm
#include vectorusing namespace std;int main() {vectorint numbers {5, 2, 8, 1, 3, 8, 4};// 查找元素auto it find(numbers.begin(), numbers.end(), 3);if (it ! numbers.end()) {cout Found: *it endl;}// 排序sort(numbers.begin(), numbers.end());// 删除元素numbers.erase(remove(numbers.begin(), numbers.end(), 8), numbers.end());// 打印结果for (int num : numbers) {cout num ;}return 0;
}stack 栈
st.push() 将一个元素压入栈顶即将一个新元素添加到栈的顶部
st.top() 返回栈顶元素的引用但不会移除该元素。如果栈为空访问栈顶元素是不安全的
st.pop() 移除栈顶元素即将栈顶元素弹出使得栈的大小减少一个元素
st.empty() 返回一个布尔值表示栈是否为空。如果栈为空返回 true否则返回 false
st.size() 返回当前栈中元素的数量即栈的大小 queue 队列
q.push() 将一个元素压入队列尾部即将一个新元素添加到队列的尾部
q.front() 返回队列头部的元素的引用但不会移除该元素。如果队列为空访问队列头部元素是不安全的
q.pop() 移除队列头部的元素即将队列头部元素弹出使得队列中的元素数量减少一个
q.empty() 返回一个布尔值表示队列是否为空。如果队列为空返回 true否则返回 false
q.size() 返回当前队列中元素的数量即队列的大小 vector 向量
V[i] 访问向量 V 中的第 i 个元素其中索引从 0 开始
v.push_back() 将一个元素添加到向量的末尾
V. insert() 在向量中的指定位置 it 处插入一个元素可以是具体的值 value
v.size() 返回向量中元素的数量即向量的大小
v.front() 返回向量的第一个元素的引用
v.back() 返回向量的最后一个元素的引用
v.empty() 返回一个布尔值表示向量是否为空。如果向量为空返回 true否则返回 falsev.clear() 移除向量中的所有元素使得向量为空
v.erase(it) 从向量中移除由迭代器 it 指向的元素
v.resize(n,m) 调整vector的大小为n如果n比原来的大则新增的部分都初始化为m map 映射
mapint, int a 创建一个名为 a 的映射其中键和值都是整数类型。
m.find(x) 在映射 m 中查找键为 x 的元素返回一个迭代器指向该元素。如果找不到返回 m.end() 迭代器。
m.count(x) 返回映射 m 中键为x 的元素的数量。由于映射中每个键只能有一个对应的值所以这个函数的返回值要么是 0未找到要么是 1找到。
m.size() 返回映射中元素的数量即映射的大小。 list 列表
li.front() 返回双向链表 li 中的第一个元素的引用。
li.pop_back() 移除双向链表 li 的最后一个元素。
li.pop_front() 移除双向链表 li 的第一个元素。 deque 双向链表
双端队列允许在两端前端和后端高效地插入和移除元素。
dq.push_back(value) 和 dq.push_front(value) 在后端或前端添加元素。
dq.pop_back() 和 dq.pop_front() 从后端或前端移除元素。
dq.back() 和 dq.front() 访问后端和前端元素。
dq.size() 返回元素数量。
dq.empty() 检查是否为空。
dq.clear() 移除所有元素。
dq.at(index) 访问特定索引处的元素。
dq.begin() 和 end() 返回迭代器。
dq.rbegin() 和 rend() 反向迭代器。
dq.erase(position) 移除指定位置的元素。
dq.insert(position, value) 在指定位置插入元素。
dq.swap(other) 交换两个双端队列的内容。 set 集合
insert(value)插入一个元素到集合中。插入后会自动排序且不会插入重复元素。 erase(value)从集合中删除指定的元素。
find(value)查找给定元素是否存在于集合中如果存在返回指向该元素的迭代器否则返回 end()。
size()返回集合中的元素数量。
empty()检查集合是否为空。
clear()移除集合中的所有元素。
begin() 和 end()返回迭代器用于遍历集合。
lower_bound(value)返回第一个大于等于给定值的元素的迭代器。
upper_bound(value)返回第一个大于给定值的元素的迭代器。
equal_range(value)返回一个 pair其中包含了与给定值相等的元素的范围。
#include set
#include iostream
using namespace std;int main() {setint mySet;mySet.insert(5);mySet.insert(3);mySet.insert(8);cout endl;if (mySet.find(3) ! mySet.end()) {cout 3 在集合中. endl;}return 0;
}Iterator 送代器
这是几乎所有STL中遍历的抽象概念送代器为一个vector、list、map、set中都可以用的指针通常它可以指向第一个和下一个位置如begin()和end()并使用运算符递增指针移动到下一个元素。下面是一个示例
#include vector
#include iostream
using namespace std;int main() {vectorint numbers {1, 2, 3, 4, 5};// 使用送代器遍历for (vectorint::iterator it numbers.begin(); it ! numbers.end(); it) {cout *it ;}return 0;
}