STL知识点总结

本文详细介绍了C++ Standard Template Library(STL)中的关键组件,包括栈(stack)的基本操作,如push、pop、top和size;动态数组(vector)的使用,如push_back、pop_back和访问元素;映射(map)的插入、查找和迭代器应用;集合(set)的元素个数和空状态检查;以及队列(queue)的front、back和pop操作。此外,还提及了upper_bound和lower_bound查找函数以及sort排序函数的应用。
摘要由CSDN通过智能技术生成

STL说明:
定义集合类型(STL中不同数据结构)变量,数据元素类型在尖括号内说明,通过变量名.成员函数去执行具体功能。
一.栈(stack)
1.栈是一种先进后出的数据结构,只能操作最顶端的元素
2.头文件#include<stack>
格式 stack<int>(尖括号内是堆栈内元素的类型,可以是结构体等其他类型)s;
3.操作: s.empty()------返回bool型,表示栈内是否为空
s.size()------返回栈内元素个数
s.top()-----返回栈顶元素值
s.pop()------移除栈顶元素值
s.push(a)------向栈顶压入一个元素a
二.动态数组(vector)
1.操作: v.empty()------返回bool型,表示动态数组是否为空
v.size()------返回vector中元素个数
v.push_ back(a)------将元素a插入最尾端
v.pop_back------将最尾端元素删除
v[i]---------和数组作用相同
三.map
1.map是一个关联容器,是一种映射.
2.map结构:map<key_type,value_type>map_show
map<string,int>mp默认按string由小到大排序
mp.begin()返回一个双向迭代器,指向第一个元素
mp.end()返回一个双向迭代器,指向最后一个元素的下一个位置
3.添加数据:
map<string,int>mp;
mp.insert(pair<string,int>(“achieve”,12);
4. 查找:
map<int ,string> ::iterator it;
it = mp.find(112);
if(it == mp.end())
cout<<“we do not find 112”<<endl;
else cout<<“we find 112”<<endl;

map<string,int>mp;
cout<<“mp->first(键值)”<<“mp->second(实值)”

四.set
1.迭代器举例(遍历)

set<int>::iterator pos;
for(pos=s.begin();s!=s.end();pos++)

s.size()-----返回容器中的元素个数
s.empty()-----返回bool类型

五.队列(queue)
1.定义:#include<queue>
2.格式:#include<int>q
3. q.front()---------队头
q.back()---------队尾
q.pop()----------在队头删元素 而stack的s.pop()则是在栈顶删元素

查找
upper_bound和lower_bound
upper_bound(begin,end,zhi)----返回大于zhi元素的第一个位置
lower_bound(begin,end,zhi)-----返回大于等于zhi元素的第一个位置
例如:
num[]={1,2,2,3,4,5};
lower_bound(num,num+6,2)为num+1
upper_bound(num,num+6,2)为num+3

sort排序
格式:sort(begin,end) //默认按从小到大排序
sort(begin,end,cmp)
例如:int num[]={1,5,6,2,9}

            bool cmp(int a,int b)
            {
                 return a>b;
             }   
          sort(num,num+5,cmp);   //num[]={9,6,5,2,1}   
 给STL排序
      sort(b.begin(),b.end,cmp)  

万能头文件

#include<bits/stdc++.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值