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;
    

    相关博客:优先队列

  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/w-w-t/p/12350526.html
Copyright © 2011-2022 走看看