• C++用法个人速记


    C++int、long、long long等不同数据类型取值范围

    unsigned int 0~4294967295
    int -2147483648~2147483647 10e10数量级
    unsigned long 0~4294967295
    long -2147483648~2147483647
    long long的最大值:9223372036854775807 10e19数量级
    long long的最小值:-9223372036854775808
    unsigned long long的最大值:18446744073709551615 //20位

    读入一整行字符

    在读入一整行之前,应该先用getchar()捕获上一行输入的回车

    int n;
    cin>>n;
    getchar();  //捕获缓冲区的回车
    string s;
    getline(cin,s);  
    

    用sscanf()分离读入后的字符串

    在输入比较复杂时,用sscanf分离变量

    /* 输入样式
    17:48:19 21:57:24
    11:05:18 15:14:23
    17:21:07 00:31:46 (+1)
    23:02:41 16:13:20 (+1)
    10:19:19 20:41:24
    22:19:04 16:41:09 (+1)
    */
    //读入方式
    string s;
    int h1,m1,s1,h2,m2,s2,sec,d;
    getline(cin,s);
    if(s.back()!=')') s=s+" (+0)"; //string.back()表示最后一位字符
    sscanf(s.c_str(),"%d:%d:%d %d:%d:%d (+%d)",&h1,&m1,&s1,&h2,&m2,&s2,&d); //string.c_str()表示字符串string的字符串引用
    

    树状数组函数模板

    int lowbit(int x) //返回二进制下最末位的1及后面的0组成的数值
    {
      return x & -x;
    }
    
    void add(int x, int v) //在原数组下标为x的位置加上数值v,维护tr[](树状数组)
    {
      for(int i = x ; i < = N ; i += lowbit(i) ) tr[i] += v;
    }
    
    int query(int x) //求原数组下标为x的位置的前缀和,[x,y]连续区间的和 = query[y] - query[x-1];
    {
      int ans = 0;
      for(int i = x; i > 0;i -= lowbit(i) ) ans += tr[i];
      return ans;
    }
    

    用memset()函数给数组赋值

    在初始化除char以外的数组时,只能初始化为0或-1。

    const int N=1e6+5;
    int f[N];
    char a[N];
    memset(f,0,sizeof(f)); //将int数组全部赋值为0
    memset(a,'s',sizeof(a)); //将char数组全部赋值为字符s
    

    错误用法
    memset(f,1,sizeof(f));
    因为memset是 逐字节 拷贝,以num为首地址的8字节空间都被赋值为1,即一个int变为 0X00000001 00000001 00000001 00000001,显然,把这个数化为十进制不会等于1的。

  • 相关阅读:
    《这个杀手不太冷》
    vim 程序编辑器
    wireshark 过滤规则
    使用c函数库的两个函数strtok, strncpy遇到的问题记录
    memset 导致的段错误(segmentation fault)
    LNMP 环境搭建
    cgic 中文文档
    virtualBox 不能开启一个新任务的错误
    PPTP&L2TP&PPPOE client and server configure
    netperf安装及使用
  • 原文地址:https://www.cnblogs.com/longwind7/p/16018043.html
Copyright © 2020-2023  润新知