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;
    

    相关博客:优先队列

  • 相关阅读:
    09-13练习
    IDEA设置项目文件自动Add到Svn/Git
    虚拟机启动项目时报错
    微服务调用时报错
    查询每个月每一天的访问量
    在IDEA中关于项目java版本问题
    复习宝典之设计模式
    复习宝典之Maven项目管理
    复习宝典之Mysql数据库
    复习宝典之Redis
  • 原文地址:https://www.cnblogs.com/w-w-t/p/12350526.html
Copyright © 2011-2022 走看看