acm学习总结1

ACM学习总结(一)
Acm学习开始内容为stl;stl主要包括:

栈(stack):这种容器可以类比于箱子,先放进去的东西只能压在箱底而后放进去的东西则是放在箱子顶,拿东西时只能从箱子顶开始操作。

队列(queue):这种容器类似于像超市收银台结账一样,排在前的人先结账然后走人,后面刚来的人排在后面最后结账。前面的数先出后面的后出。

动态数组(vector):c语言有些编译器是不能定义未知容量大小的数组比如说 int x;
Int a[x];cin>>x;这种方法是不能用的。Vector可以根据内容的大小来分配空间。

Sort函数简单的排序方法。
Bool campare(int x,int y)
Return x>y;

Lower -bound/upper-bound用法
num[] = {1,2,2,3,4,5};
lower_bound(num, num + 6, 2)为num + 1
upper_bound(num, num + 6, 2)为num + 3
lower找到第一个>=2的值的位置;
upper找到第一个>2的值的位置;
另外输出时需要注意mum是第一个位置所以求出的位置需要减掉第一个位置。

Set容器只能存储不同的元素,另外set里面的元素默认从小到大排序,可以运用operator重载set,具体方法还在研究中。

Multiset容器可以存不同的变量。

Map容器可以看成比如说a同学考了100分,b同学考了90分,每个元素都已成双的。这个第一个元素,a,b就是键值map不允许有相同的键值。
Multimap可以允许两个元素有相同的键值
优先队列(priority-queue)类似于把队列中最大或者最小的数排到第一位类似于树形的排列

各个容器的具体操作:
Stack:s.empty()返回bool类型判断是否为空;
Size() s.size()返回元素个数
Top() s.top()返回栈顶元素
Pop() s.pop()移除栈顶元素
s.push(a)压入元素

queue:与栈不同之处有
q.front()返回下一个元素
q.back()返回最后一个元素

set:s.insert(elem)插入elem元素
s.erase(elem)移除elem元素
s.erase(pos)这是迭代器移除该元素并返回

map:m.count(a)返回等于a的值的个数;迭代器还正在研究中;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ProgreamA/article/details/88237922