第九章 STL标准库(二)

目录
  • set,multiset,map,multimap
  • 容器适配器
  • STL算法

set,multiset,map,multimap

  1. 常用函数

    find //查找等于某个值的元素(x,bool指示原来是否存在该元素
    erase //删除某个元素
    
  2. 模板声明

    template,class A=allocator >
    class multiset{...}
    template,class A=allocator >
    class multimap{
        ...
     typedef pair value_type;
        ...
    }
    mp.insert(multimap::value_type(1,3,3));
    map还具有[]成员函数,返回key对应值的引用;若无该key,则自动插入无参构造函数初始化的元素
    

容器适配器

  1. stack栈:push、pop、top(返回栈顶元素引用)

    //可用vector, deque(默认), list实现,前两者效果较好
    template >
        class stack{...}
    
  2. queue队列:push(队尾)、pop(队头)、top(队头)、back(队尾)

    //可用vector, deque(默认)实现
    template >
        class queue{...}
    
  3. priority_queue优先队列:push(进堆)、pop(弹出堆顶)、top(堆顶引用)

    //可用vector(默认), deque实现
    template,class Compare=less >
        class priority_queue{...}
    //默认less,堆顶为最大元素
    
  4. stack、queue、priority_queue共同点

    • empty() 判断适配器是否为空
    • size() 获取适配器元素个数

STL算法

多数重载算法有两个版本

  • 通过<==判断大小
  • 通过多出来的类型参数Pred及函数形参Pred op,通过op(x,y)判断

>>详细内容参见北大郭炜课件(课件链接)

你可能感兴趣的:(第九章 STL标准库(二))