zoukankan      html  css  js  c++  java
  • STL常用整理

    S T L

    Sting:

    << 判断拼音序 size length 字符串长度

    str[n] 代表字符串中的一个字符 可用作左值

    string::size_type 用于表示字符串长度计量

    #include <cctype>
    
    只控制字符 
    
    isalpha(); 字符串中是否为字母
    
    ispunct(s[n]) 检查某一个字符是否为标点符号
    
    Isalnum() 检查某一个子否是字母或数字
    
    Iscntrl() 是否为控制字符
    
    Isdigit() 是否为数字
    
    Isxdigit() 是否为十六进制
    
    Islower() 是否为小写字母
    
    Isupper() 是否为大写字母
    
    Isspace() 是否为空格
    
    Tolower() 把每一个变成小写
    
    Toupper() 把每一个变成大写
    
    
    string str("iloveyou");
    
    for(int i = 0;i < str.size();i++)
    
    {
    
     str[i] = toupper(str[i]);
    
    }
    
    
    //比较
    
    s1.compare(3,3,s2,3,3);//s1和s2比较从第三个开始后的三个 s2可以为字符串指针
    
    
    //count查找个数
    
    int num = count(ivec.begin(),ivec.end(),k); 从ivec中获取数值k的数量
    
    
    //字符串查找
    
    s.find(args);
    
    s.rfind(args);//这两个为精确匹配查找 一个从左向右 一个从右向左 返回第一个下标值
    
    
    s.find_first_of(args);
    
    s.find_last_of(args);
    
    s.find_first_not_of(args);
    
    s.find_last_not_of(args);//这四个为模糊查找 s中有任意字符在args中便返回下标
    
    
    
    //example
    
    string name("AnnaBelle");
    
    String::size_type pos1 = name.find("Bell"); 得到4
    
    如果找不到  pos1==string::npos
    
    
    name = "r2d3";
    
    string numerics("0123456789");
    
    String::size_type pos1 = 0;
    
    string::size_type pos = name.find_first_of(numerics,pos1); 
    
    //name中的2首先出现 故得到下标pos为1; 
    
    //pos1为从numerics字符串的pos1位置开始
    
    
    
    
    int
    
    int a = 12;//这是十进制
    
    int b = 0x12;//这是十六进制
    
    int c = 012;//这是八进制
    
    Int d;
    
    Cin >> hex >> d;
    
    Cout << oct << d;
    
    
    #include <bitset>
    
    Bitset<16>  a;//自动初始化 a中为16个0
    
    bitset类型 二进制位处理
    
    bitset<32>  a;//a里边可以放32个二进制位 初始化为0
    
    bitset<16>  b(0xffff);//用十六进制初始化 变为16个1
    
    bitset<5>  five(string("01010");//用字符串初始化
    
    
    bool is_set = a.any();//是否至少有一个1
    
    bool is_not_set = a.none();//是否一个1都没有
    
    size_t bits_set = a.count();//a里一共有几个1
    
    a.size(); //一共有几位
    
    
    a[5] = 1;//支持下标操作
    
    a.set(5);//同上
    
    a.set();  //全部置为1
    
    a.reset(5);  //下标对象置为0
    
    a.reset();  //全部置为0
    
    a.flip();  //全部翻转
    
    a.filp(5);  //翻转某一位
    
    a = ~a; //取反
    
    unsigned long b = a.to_ulong();//转换成十进制
    
    
    string str("000000000111101010");
    
    bitset<32> f(str,5,4);//用str初始化 从第五位开始 要四位
    
    
    
    bitset<8> e;
    
    cin >> e;//用终端输入赋值
    
    
    #include <vector>
    
    vector只能在末尾操作数据
    
    vector<int> a(10,2);//10个2初始化
    
    a.push_back(k);
    
    push_back();
    
    cout << *min_element(a.begin(),a.end()) << endl;//获取最小值
    
    cout << *max_element(a.begin(),a.end()) << endl;//获取最大值
    
    find(begin(),end(),4);//查找4 返回一个迭代器
    
    find_first_of(b,e,sb,se);//在b到e中查找sb到se中任意一个元素 模糊查找 返回迭代器
    
    search(b,e,sb,se);//在b到e中查找sb到se完全相同顺序的元素 返回迭代器  精确查找 相反的函数find_end();从右向左
    
    search_n(begin,end,c,v);//查找连续的c个v
    
    search_n(begin,end,c,v,greater<>());//查找连续c个比v大的数值  less<>()
    
    adjacent_find(b,e);//查找连续的两个相等的元素
    
    
    remove(begin,end,k); //查找到k的位置将后面的数据逐步向前粘贴 造成的后果就是最后面出现数据重复 如果判断过程中end为静态的 可在输出的时候显示达到确实删除的目的
    
    vec.erase(begin,end);//确实删除了
    
    vec.erase(itr);//确实删除了
    
    
    //已序区间查找
    
    lower_bound(ivec.begin(),ivec.end(),k);//在区间内找到第一个k的位置 返回迭代器
    
    upper_bound(ivec.begin(),ivec.end(),k);//在区间内找到最后一个k的位置 返回迭代器
    
    pair<vector<int>::iterator,vector<int>::iterator> range= equal_range(ivec.begin(),ivec.end(),5);
    
    range.first;//返回迭代器
    
    range.second;//返回迭代器
    
    
    
    
    
    #include <deque>
    
    deque<int> a;
    
    deque 可以在开始和末尾操作数据
    
    a.push_back(k);
    
    a.push_front(k);
    
    distance(a.begin(),begin); //begin到起始的下标距离
    
    a.pop_front();
    
    a.pop_back();
    
    
    #include <list>
    
    list<int> a(10,0);
    
    a.insert(迭代器,10);插入10
    
    a.insert(迭代器,10,2);插入十个2
    
    a.sort();
    
    a.reverse();
    
    
    list<int>::iterator itr = a.push_fornt(2);//迭代器指向该数值
    
    a.push_back();
    
    a.reverse();
    
    
    
    #include <stack>
    
    stace<int,deque<int> > s;
    
    stack<int> s1;//默认用deque
    
    s.empty();
    
    s.size();
    
    s.pop();
    
    s.top();
    
    s.push(item);
    
    
    
    #include <queue>
    
    queue<int,deque<int> > q;//默认deque
    
    queue<int> q2;
    
    q.empty();
    
    q.size();
    
    q.front();
    
    q.back();
    
    q.pop();
    
    q.push(item);
    
    
    priority_queue<int> pq;//最前端始终为最大值
    
    
    容器.swap(容器);//交换
    
    
    vec.assign(n,k);//用n个k重新赋值
    
    
    
    #include <algorithm>
    
    
    reverse(begin,end);
    
    sort(begin,end);`
    
    
    #include <iomanip>
    
    Cout.fill(‘a’);
    
    Cout << setw(5);
    
    Cout << left
    
    Cout << hex
    
    Cin >> oct
    
    Cout << Setprecision(6);
    
    cout<<setiosflags(ios::fixed);
    
    Cout << uppercase
    
    Cout << lowercase
    
    cout << showpos
    
  • 相关阅读:
    数组,一维,二维,多维
    类函数:string、math
    while和for的内嵌
    循环语言(for)
    选择语言之switch case
    程序语言
    语言、数据和运算符
    原理之一,进制转换
    HTML第一部分
    结构体共用变量 递归
  • 原文地址:https://www.cnblogs.com/maskerk/p/7348837.html
Copyright © 2011-2022 走看看