zoukankan      html  css  js  c++  java
  • STL基础用法

    STL序列容器

      1.List (列表)

      2.Stack (栈)

      3.Queue (队列)  

      4.Priority——queue (优先队列)

      5.Deque (双端队列)

    容器共同特征

      .begin()

      .end()

      .size()

      .swap(x)

      .empty()

      ::iterator

    List(列表)

    基本函数:

      .merge(listb)若A,B为有序,C也为有序,若A,B为无序,C也为无序,llistb完后为空

      .remove(x) O(1) 删除  .remove(2) 把二全删除

      .sort()排序

      .splice(pos,listb)listb完后为空,pos指针

      unique(list)连续元素压缩为单个元素,将其他的删除,大小减小

    其他成员函数:

      .front()

      .back()

      .push_front(t)

      .push_back(t)

      .pop_front(t)

      .pop_back(t)

      .insert(p,t)    插入数组 name.insert(pos,start,last)

      .erase(p)

      .clear()

      

    定义:

      头文件 include<list> include<iterator>

      列表 list<类型> 名称(a,b) //赋值a个b

    注意事项:

      1.双向链表,不支持数组表示法与随机访问

      2.指针找位置很重要

    Stack(栈)

    基本函数:

      .push(x)

      .pop()

      .top()

      .size()

      .empty()

    定义:

      头文件 include<Stack> include<iterator>

      栈 Stack<类型> 名称

    注意事项:

      1.栈(后进先出表),不支持数组表示法与随机访问

    Queue(队列)

    基本函数:    

      .push()

      .front()

      .back()

      .size()

      .empty()

      .pop() 

    定义:

      头文件 include<queue> include<iterator>

      队列 Queue<类型> 名称

    Priority_queue(优先队列)

    基本函数:  

      .push(x)

      .pop()

      .top()

      .size()

      .empty()

      .emplace() 原地构造一个元素并插入队列

    定义:

      头文件 include<queue> include<iterator>

      队列 priority_queue<类型> 名称

      越大越优先

     

     优先级自定义(运算符重载):
    
    
        Struct Node{
    
          int  w,v
    
        }
    
        bool operator <(const Node &a,const Node &b){
    
          return a.v>b.v   (按照V从小到大输出)
    
        }

    注意事项:

      1. 对于基础类型 默认是大顶堆

        priority_queue <int,vector<int>,greater<int> > q;   升序
        priority_queue <int,vector<int>,less<int> > q;    降序

    Deque(双端队列)

    基本函数:  

      .front()

      .back()

      .push_front(t)

      .push_back(t)

      .pop_front(t)

      .pop_back(t)

    定义:

      头文件 include<deque> include<iterator>

      双端队列 deque<类型> 名称

    注意事项:

      1.Deque(双端队列),支持数组表示法与随机访问,类似vector

    iterator

    实质:广义的指针

    for_each(begin,end,funtion不加括号) 头文件<algorithm> Funtion为普通Fun

    STL关联容器

      1.vector

      2.set/multiset/bitset

      3.map/multimap

    STL相关函数

      1.sort

      2.reverse

      3.eandom_shuffle

      4.unique

    Vector 序列容器

    基本函数:

      beigin/end

      front/back

      erase/insert

      size/empty/clear

      push_back/pop_back

      

    定义:

      头文件 include<vector> include<iterator>

      向量 vector<类型> 名称

    注意事项:

      1.向量(数组),支持数组表示法与随机访问

      2.插入insert(指针+X位置,数值) 在指针开始的X位置前插入

      3.可以直接初始化赋值 vector<类型> 名称A(名称B) 将B复制给A

    Set 有序集合   Multiset 有序多重集合

    基本函数: 

      size / empty / clear / erase

      begin / end

      find / insert

      count  统计等于X的个数

      lower-bound / unper_bound  大于等于X最小的/大于X最小的

    定义:

      头文件 include<set> include<iterator>

      集合 set<类型> 名称

    注意事项:

      1.符合集合的三大性质之一:单一性

      2.不符合集合的三大性质之二:随机性,无序性;本集合是有序集合

      

    Map 一一映射  Multimap 多值映射 (未完成!!!!!!)

    基本函数: 

      size / empty / clear / erase

      begin / end

      find / insert

      first / second

    定义:

      头文件 include<map> include<iterator>

      映射 map<键,值> 名称

    注意事项:

      1.map不能有重复的键值对,即如果插入键相同的键值对,则将覆盖掉同键值的键值对。multimap则不会覆盖。

    Sort 函数

    定义:

      头文件 include<algorithm> 

      sort(数组名+S,数组名+E,less<int>()) greater(降序)

      sort(数组名+S,数组名+E) 升序

      自定义优先级 

        sort(数组名+S,数组名+E,cmp)

        bool cmp(类型 代指名A,类型 代指名B) //自定义 前A后B 

     

    reverse(begin,end)前后翻转

    random_shuffle(begin,end)随机打乱序列

    unique(begin,end)去重 连续元素压缩成单个元素

  • 相关阅读:
    反序列化
    反序列化使用
    Serializer序列器
    DRF工程搭建
    JDK目录介绍
    Java环境变量配置
    Java语言的特性
    Java语言概述
    计算机编程语言介绍
    软件开发介绍
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/10364091.html
Copyright © 2011-2022 走看看