一些知识的总结(1)

  • 异或变换

  • 定义结构体

  • 字符串哈希

  • 快速幂

  • 队列

  • 异或变换

    即判断两个数是否相同,相同为0,不同为1,主要是在二进制位下比较每一位得到结果,C++运算符 " ^ "
  • 定义结构体

struct 结构体名称{
    变量类型 变量1,变量2,...;
}以该结构体为类型的变量名称;
  • 字符串哈希

#define hnum 100007
//大质数
string h[5000];

int hash(string ss){
    int x=0,k=1;
    int len=ss.size();
    for(int i=0;i=hnum) x%=hnum;
        k*=26;
        if(k>=hnum) k%=hnum;
    } 
    while(h[x]){
        x++;
        if(x>=hnum) x-=hnum;
    }
    return x;
}
  • 快速幂

//a*b%p
int quickmi(int a,int b){
    int ans=1;
    while(b>0){
        if(b%2==1) ans=(ans*a)%p;
        b=b>>1;// /2
        a=(a*a)%p;
    }
    return ans;
}
  • 队列

    • C++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

    • queue 入队 ,如例:q.push(x); 将x 接到队列的末端。
      queue 出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
      访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
      访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
      判断queue队列空,如例:q.empty(),当队列空时,返回true。
      访问队列中的元素个数,如例:q.size()

    • #include
    • queue <变量类型> 变量名;

你可能感兴趣的:(一些知识的总结(1))