记不住的

priority_queue<>

bool operator<(Node a, Node b){//返回true时,说明a的优先级低于b
	//x值较大的Node优先级低(x小的Node排在队前)
	//x相等时,y大的优先级低(y小的Node排在队前)
    if( a.x== b.x ) return a.y> b.y;
	return a.x> b.x; 
}
priority_queue<int, vector<int>, greater<int> > q;//小根默认大根

迭代器

vector<int>::iterator iter;
for(iter = v.begin();iter!=v.end();iter++){}

离散

//二分式
vector<int> ve;
int fid(int x){
	return lower_bound(ve.begin(),ve.end(),x)-ve.begin();
}
sort(ve.begin(),ve.end());
ve.erase(unique(ve.begin(),ve.end(),ve.end());
mp[fid(x)];//使用

//哈希链表
const int SIZE = 1000000;
const int M = 999997;//取模
struct HashTable {
  struct Node {
    int next, value, key;
  } data[SIZE];
  int head[M], size;
  int f(int key) { return key % M; }
  int get(int key) {//查找
    for (int p = head[f(key)]; p; p = data[p].next)
      if (data[p].key == key) return data[p].value;
    return -1;
  }
  int modify(int key, int value) {
    for (int p = head[f(key)]; p; p = data[p].next)
      if (data[p].key == key) return data[p].value = value;
  }
  int add(int key, int value) {//添加
    if (get(key) != -1) return -1;
    data[++size] = (Node){head[f(key)], value, key};
    head[f(key)] = size;
    return value;
  }
};

bitset

#include <bitset>
bitset<(size)> bt;//全为0
bitset<(size)> bt(int/long/chars);//右对齐的相应的值
cout << bt << endl;
.count() //返回 true 的数量。
.any() //若存在某一位是 true 则返回 true,否则返回 false。
.none() //若所有位都是 false 则返回 true,否则返回 false。
.set(pos, val = true/false) //将某一位设置成 true/false。
.to_string() //返回转换成的字符串表达。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值