zoukankan      html  css  js  c++  java
  • 实用函数及STL

    ps:侵换,请在评论区留言或私信我

    ps:本文不定期更新...

    int s=atoi(string ss);   //将string型(全数字)转化为int型
    //atoi 表示 ascii to integer
    vector(不定长数组/向量):
    #include  <vector>
    vector<int> vec;
    vector[0];//使用下标访问元素;
    vec.front();//取vec中的第一个元素;
    vec.back();//取vec中的最末一个元素;
    vec.push_back(x);//在向量末尾加入元素x;
    vec.pop_back();//删除末尾元素,同时向量空间减少1;
    vec.insert(vec.begin()+i,a);//在第i+1个元素前边插入元素a;
    vec.erase(vec.begin()+i);//删除第i+1个元素;
    vec.size();//取向量大小;
    vec.clear();//清空向量;
    reverse(vec.begin(),vec.end());//将向量翻转;
    sort(vec.begin(),vec.end());//排序;
    vec.resize(n,1);//改变当前向量大小为n,新增加的元素赋值为1;
    vec.empty();//判断向量是否为空,为空返回1,不为空返回0;
    swap(vec & v);//交换向量vec和v的值;
    vec.max_size();//返回vec的最大长度;
    set(集合):
    #include <set>
    set<int> s;
    s.clear();//清除所有元素;
    s.count(x);//返回集合中元素x的数目,由于set中元素是唯一的,所以用来判断元素是否存在;
    s.empty();//判断当前集合是否为空;
    s.erase(x);//删除集合中元素x;
    s.insert(x);//再集合中插入元素x;
    s.size();//返回集合的大小;
    s.find(x);//在集合中查找元素x,返回的是指向x所在位置的迭代器;
    stack(堆栈):
    #include <stack>
    stack<int> stk;
    stk.empty();//判断栈是否为空;
    stk.push();//向当前堆栈中加入元素;
    stk.pop();//将最后放入的元素弹出;
    stk.size();//返回堆栈的大小;
    stk.top();//返回堆栈 最后放入的元素;
    map(映射):
    #include <map>
    map<int,int> mp;
    map<pair<int,int> ,int> mpair;
    mp[0]=x;//利用数组方式插入数据,0是键,x是值;
    mp.at(0)=x;//利用at执行插入操作;
    mp.insert(make_pair(1,x));//利用insert插入pair(键,值)数据;
    mp.emplace(make_pair(1,x));//在映射中不存在主键1时执行插入操作;
    mp.size();//返回mp的大小;
    mp<int,int> ::iterator iter;//定义迭代器;
    for(it=mp.begin(); it!=mp.end(); ++it);//映射遍历的方式,利用迭代器实现;
    mp.count(1);//统计键为1的元素存在的映射数,存在返回1,不存在返回0;
    mp.erase(iter);//根据迭代器删除元素;
    mp.clear();//清空映射;
    mp.epty();//判断映射是否为空;
    mp.find(1);//根据键1查找元素,找到以后返回迭代器;
    mp.rbegin(),mp.rend();//返回反向迭代器;
    lower_bound(1);//返回查找的键1的下界,即闭区间,返回的是迭代器;
    upper_bound(1);//返回查找的键1的上界,即开区间,返回的是迭代器;
    mp.swap(m);//将mp和m进行交换;
    queue(队列):
    #include <queue>
    queue<int> q;
    q.push(x);//入队;
    q.pop();//出队;
    q.front();//访问队首元素;
    q.back();//访问队尾元素;
    q.empty();//判断队列是否为空;
    q.size();//返回队列的大小;
    priority_queue<int> q //优先队列
    #include <queue>
    q.empty()         // 如果队列为空,则返回true,否则返回false
    q.size()           //返回队列中元素的个数
    q.pop()            //删除队首元素,但不返回其值
    q.top()            //返回具有最高优先级的元素值,但不删除该元素
    q.push(item)      // 在基于优先级的适当位置插入新元素

    algorithm

    string   (字符串)
    #include<string>
    string s;                 //默认初始化,一个空字符串
    string s(cp,n)         //复制字符串cp的前n个字符到s当中
    s.substr(pos1,n)    //返回字符串位置为pos1后面的n个字符组成的串
    s.substr(pos)         //得到一个pos到结尾的串
    //上边两个如果输入的位置超过字符的长度,会抛出一个out_of_range的异常
    s.insert(pos,str)     //在s的pos位置插入str
    str.erase (10,8);
    //直接指定删除的字符串位置第十个后面的8个字符
    str.erase (str.begin()+9);
    //删除迭代器指向的字符
    str.erase (str.begin()+5, str.end()-9);
    //删除迭代器范围的字符
    str.find(needle);
    //在str当中查找第一个出现的needle,找到则返回出现的位置,否则返回结尾
    /*用scanf读入整数的时候可以控制读入的位数,比如 scanf("%2d",&m); 就是读入一个2位的整数
    所以可以用以下方式读入整个矩阵*/
    int c,m,mapp[101][101];
    for(c=1;c<=m;c++)//循环变量稍微有点奇怪     
        for(d=1;d<=n;d++)      
            scanf("%1d",&mapp[c][d]);   
         
  • 相关阅读:
    HDU
    洛谷- P1306 斐波那契公约数
    HDU
    HDU
    POJ3321
    SPOJ
    HDU
    POJ 1236 Network of Schools
    POJ-3169 Layout (差分约束+SPFA)
    POJ-1062 昂贵的聘礼 (最短路)
  • 原文地址:https://www.cnblogs.com/Alarak26/p/8505628.html
Copyright © 2011-2022 走看看