c++程序设计竞赛常用STL总结

1.STL通用函数 
empty() 堆栈为空则返回真 
size() 返回栈中元素数目 
c1.swap(c2) 交换两个容器中的元素 
max_size() 返回容器最大容量
1.stack 
empty() 堆栈为空则返回真 
pop() 移除栈顶元素 
push() 在栈顶增加元素 
size() 返回栈中元素数目 
top() 返回栈顶元素
2.vector 
at() 返回指定位置的元素 
back() 返回最末一个元素 
begin() 返回第一个元素的迭代器 
clear() 清空所有元素 
empty() 判断Vector是否为空(返回true时为空) 
end() 返回最末元素的迭代器(译注:实指向最末元素的下一个位置) 
erase() 删除指定元素 
front() 返回第一个元素 
insert() 插入元素到Vector中 
pop_back() 移除最后一个元素 
push_back() 在Vector最后添加一个元素 
size() 返回Vector元素数量的大小 
swap() 交换两个Vector
3.set 
集合(Set)是一种包含已排序对象的关联容器 
begin()返回指向第一个元素的迭代器 
clear()清除所有元素 
count()返回某个值元素的个数 
empty()如果集合为空,返回true 
end()返回指向最后一个元素的迭代器 
erase()删除集合中的元素 
find()返回一个指向被查找到元素的迭代器 
insert()在集合中插入元素 
size()集合中元素的数目 
swap()交换两个集合变量 
由于集合不能像数组那样用数组下标直接访问,因此需要用特殊手段来使用: 
迭代器
set s;
set::iterator ite;
for (ite = s.begin(); ite != s.end(); ite++) printf(“%d”, *ite);
迭代器跟指针的使用方法类似,唯一需要注意的一点是,s.end()指向的是集合中的最后一个元素,但是并不是你插入集合的元素,也就是说集合在你插入的元素之外还自带有一个末元素,作为集合边缘的标记。
4.queue 
back() 返回最后一个元素 
empty() 如果队列空则返回真 
front() 返回第一个元素 
pop() 删除第一个元素 
push() 在末尾加入一个元素 
size() 返回队列中元素的个数
5.Priority Queues(优先队列) 
empty() 如果优先队列为空,则返回真 
pop() 删除第一个元素 
push() 加入一个元素 
size() 返回优先队列中拥有的元素的个数 
top() 返回优先队列中有最高优先级的元素 
优先队列是稍微复杂一些同时也是十分的重点: 
对于常规的数据类型,int, double, string等,定义方法如下: 
默认的priority_queue pq; 是一个越大的整数优先级越高的优先队列。 
而priority_queue
struct Edge{
int start,end;
double weight;
Edge(int start,int end,int weight):start(start),end(end),weight(weight){};
};
bool operator < (Edge a,Edge b)
{
return a.weight < b.weight;//此处注意,希望优先级越小的规则返回true,
//比如希望从大到小排序,则小于优先级低,返回a

猜你喜欢

转载自blog.csdn.net/qq_42866708/article/details/81367762