stl库

vector

头文件

$#include $

常用用法

函数 含义
$name$.push_back($value$); 在$name$尾部接上一个元素$value$
$name$.pop_back($value$) 弹出$name$尾部元素
$name$.back() 获取$name$尾部元素
$name$.begin() 获取$name$的首元素地址
$name$.end() $name$最后一个元素的后一位地址(为空)
$name$.rbegin() 获取$name$最后一位地址
$name$.rend() $name$首元素地址的前一位(为空)
$name$.resize($len$) 给$name$开拓$len$个空间($name[0]$ ~ $name[len-1]$可用)
$name$.size() 返回$name$大小(长度)
$name$.empty() 检查$name$是否为空,为空返回$true$

queue

头文件

$#include $

常用用法

函数 含义
$name$.push($value$); 在$name$尾部插入一个元素$value$
$name$.pop() 弹出$name$首元素
$name$.front() 获取$name$首元素
$name$.size() 返回$name$大小(长度)
$name$.empty() 检查$name$是否为空,为空返回$true$

stack

头文件

$#include $

常用用法

函数 含义
$name$.push($value$); 在$name$顶部插入一个元素$value$
$name$.pop() 弹出$name$最顶端元素
$name$.top() 获取$name$最顶端元素
$name$.size() 返回$name$大小(长度)
$name$.empty() 检查$name$是否为空,为空返回$true$

set

$#include $

常用用法

函数 含义
$name$.insert($value$); 在$name$插入一个元素$value$
$name$.size() 返回$name$大小(长度)
$name$.empty() 检查$name$是否为空,为空返回$true$
$name$.begin() 获取$name$的首元素地址
$name$.end() $name$最后一个元素的后一位地址(为空)
$name$.rbegin() 获取$name$最后一位地址
$name$.rend() $name$首元素地址的前一位(为空)

map

头文件

$#include $

常用用法

函数 含义
$name$.begin() 获取$name$的首元素地址
$name$.end() $name$最后一个元素的后一位地址(为空)
$name$.rbegin() 获取$name$最后一位地址
$name$.rend() $name$首元素地址的前一位(为空)
$name$.resize($len$) 给$name$开拓$len$个空间($name[0]$ ~ $name[len-1]$可用)
$name$.empty() 检查$name$是否为空,为空返回$true$
地址->first 该位置的$key$
地址->second 该位置的$value$

sort

头文件

$#include $

find

头文件

$#include $

常用用法

  1. 字符串:

    1
    2
    string s1, s2;
    s1.find(s2);//在s1中查找s2

    如果找到返回下标

    如果没找到返回npos;

    1
    2
    3
    if(s1.find(s2) == string::npos){
    puts("No");
    }
  2. 数组/容器

    1
    2
    3
    4
    5
    int a[105];
    vector<int> mp;
    find(a, a + len, value);//在a数组中从[0, len)中查找value
    find(mp.begin(), mp.beign() + len, value);//在mp容器中从[begin, begin + len)中查找value
    find(mp.begin(), mp.end(), value);//在mp容器中查找value

    如果找到返回地址

    如果没找到返回查找末端的下一位

erase

  1. 元素确保不重复(set,map)直接删除值

    1
    2
    3
    4
    set<int>st;
    map<int,int>mp;
    st.erase(value);
    mp.erase(value);
  2. 元素可能重复(vector),删除地址

    1
    2
    3
    vector<int>vc;
    vc.erase(ve.begin());//删除首元素
    vc.erase(ve.begin() + len);//删除begin() + len位置元素