STL 合集(不断补充)

 先要有一个指针:iterator

用法:

定义指针:        vector<int>::iterator  a        ps:定义一个存放int的容器指针  a

                         queue<int>::iterator  b        ps:定义一个存放int的队列指针  b

输出相应值:          cout<<*a     cout<<*b;                         





vector:

       定义:   vector<int>v;        

       大小:   v.size()               ps:返回个数

       加数:   v.push_back(  x  )     ps:在队尾加入x(从0开始)

   是否为空:v.empty()                  ps:如果为空,返回 false

   插入元素:v.insert(v.begin()+i,  x  )       ps:在第i+1个元素前插入x

   删除元素:v.erase(v.begin()+3   )          ps:删除第4个元素

   删除区间:v.erase(v.begin()+2,v.begin()+7)  ps:删除第3到第7个元素

       清空:   v.clear()         



queue:

       定义:  queue<int>q              

       大小:  q.size()

       加数:  q.push()                          ps:注意是push

  是否为空:q.empty()

       出队:  q.pop()               

    问队首:  q.front()                    

    问队尾:  q.back()

                 子函数:

              priority_queue<int>a             ps:只能重载运算符”<“,函数内部用”<“比较

   


   


stack:

        定义:     stack<int>s;

        大小:     s.size()

        入栈:     s.push()

        出栈:     s.pop()

        栈顶:     s.top()

     是否为空: s.empty()



sort:

        子函数:

     按cmp对a到b排序                 sort(a,b,cmp)

     按cmp对a到b稳定排序          stable_sort(a,b,cmp);

        

map:

          定义:              map<int,int>m;

求插了多少东西:       m.size();

          清空:              m.clear();

      删除一个:           m.erase('a')                    ps:删除‘a’对应键值

      是否为空:           m.empty()

      是否存在:           m.count()                        ps:操作过就输出1,没数就输出0;

         子函数:

以空间换时间o(1)查询    hash_map         



pair:

       注:可于map配套使用       map<pair<int,int>,int>m         

          定义:               pair<int,int>p;

          配对:              p=make_pair(a,b);                       ps:a、b配对,信息传给p

          访问:              p.first()          p.second()              ps:一个访问a、一个访问b

          


     

unique:

          去重:            iter=unique(v.begin(),v.end())     ps:只能对容器使用,返回指针

         


set:

          定义:        set<int>s 

          加入:        s.insert( x )

          查找:        s.find( x )                     ps:找到:返回位置;没找到:返回end()

          删除:        s.erase(  x  )

 

multiset:

          定义:        multiset<int>mu

          加入:        mu.insert( x )

          数量:        mu.count(  x  )              ps:返回个数

          查找:        mu.find( x )                   ps:返回第一个位置

      删除所有:     mu.erase( x )                

          删除:        if(multiset<int>::operator it=mu.find(x)!=mu.end())mu.erase(it);


bitset:

          定义:     bitset<n>b                          ps:定义一个二进制位为n位的数b,初值0赋值 :1、bitset<n>b(str ,j,i)     ps:把一个二进制字符串str从右往左第i个到第j个赋给b

           2、bitset<n>b(a)        ps:把一个数字a的二进制位从右往左第1个到第n个赋给b

          有没有1:  b.none()                            ps:如果有1返回0,没有1返回1

          计1的个数:        b.count()                  ps:返回1的个数

          计位数:             b.size()                     ps:返回b的位数

          全部取反:          b.flip()                      

          单个取反:          b.flip(pos)                ps:从右往左第pos位取反

          求第几位:          b.operator[](pos)      ps:返回从右往左第pos位

          清1:                  b.set()

          单点清1:           b.set(pos) 

          清0:                  b.reset()

          单点清0:           b.reset(pos)

          第i位是否是1:   b.test(pos)                ps:是1返回1;


杂项

          折半排序 :         nth_element(a+l,a+k,a+r+1,cmp)

ps:从l找到r,按cmp标准找第k大,把比他小的放左边,比他大的放右边;;

       

                     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值