• 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;
    

    相关博客:优先队列

  • 相关阅读:
    mysql--笔记1
    html-day04
    转换流 Properties集合 序列化 工具
    html--笔记day03
    map集合的应用
    关于IO流---笔记1
    关于什么是编码表的说明
    实现斗地主纸牌游戏---洗牌 发牌 看底牌的具体功能------Map集合存储方法 遍历的应用
    计算属性
    组件-配置组价
  • 原文地址:https://www.cnblogs.com/w-w-t/p/12350526.html
Copyright © 2020-2023  润新知