zoukankan      html  css  js  c++  java
  • C++ STL

    unordered_set

    侧重于元素的快速获取,没有了upper_bound,lower_bound函数
    
    #include<iostream>
    #include<unordered_set>
    #include<algorithm>
    using namespace std;
    int main(){
        unordered_set<int> myset;
        myset.insert(3);
        myset.insert(5);
        myset.insert(3);
        cout<<myset.size()<<endl;
        myset.erase(3);
        if(myset.find(3)==myset.end()){
            cout<<"NO 3"<<endl;
        }
        return 0;
    }
    
    

    应用
    今日头条笔试题1——在n个元素的数组中,找到差值为k的数字对去重后的个数

    #include<iostream>
    #include<cstdio>
    #include<unordered_set>
    #include<algorithm>
    using namespace std;
    const int MA=1e5+5;
    unordered_set<int>myset;
    int main(){
        int n,k;
        cin>>n>>k;
        for(int i=0;i<n;i++){
            int x;
            cin>>x;
            myset.insert(x);
        }
        int sum=0;
        for(int x:myset){
            if(myset.find(x+k)!=myset.end()){
                sum++;
            }
        }
        cout<<sum<<endl;
        return 0;
    }
    
    

    unordered_map

    priority_queue 优先队列

    头文件:#include
    基本操作
      empty()   判断队列是否为空
      pop()   删除队顶元素(删除第一个元素)
      push()   加入元素
      size()   返回元素个数
      top()   返回队顶元素
    声明方式
      1.普通方式
        priority queue q;//从大到小
      2.顺序出队
        priority queue<int,vector,greater> q;//从小到大
      3.设置优先级

    //eg:
    struct node{
        int x,y;
        bool operator < (const node &b)const{
            return x<b.x;//x大的优先级高
        }
    }x1,x2,x3;
    

    相关博客:优先队列

  • 相关阅读:
    NOIP 2017逛公园(记忆化搜索)
    NOIP 2012疫情控制 (二分+倍增+贪心)
    NOIP 2005过河(DP+路径压缩)
    P1198 [JSOI2008]最大数
    [Noip2016]蚯蚓
    [六省联考2017]期末考试
    六省联考:组合数问题
    蒜头君的兔子
    bzoj1015 [JSOI2008]星球大战starwar
    luogu P3370 【模板】字符串哈希
  • 原文地址:https://www.cnblogs.com/w-w-t/p/12350526.html
Copyright © 2011-2022 走看看