#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <set>
#include <map>
//讲义中没有提到的数据结构
#include <unordered_set>
//无序的set
#include <unordered_map>//和map对应的是这个 里面也有unordered_multimap 但不常用就不讲了
using namespace std;
int main(){
unordered_set<int> S; //底层实现是哈希表 不能存储重复元素
//和set是完全一样的用法 只是没有 lower_bound() upper_bound()两个函数
// find~啥插入啥都是O(1)的时间复杂度 set所有操作是O(logN)的
// 所以相比于set来说unordered_set效率会快一些
// 但是不能支持二分 因为他是无序的
unordered_multiset<int> b; //也是哈希表 里面是可以存在重复元素的
unordered_map<int, int> c;//好处是效率更高 map所有操作都是O(logN)的 但是他是O(1)的 但是坏处是不能支持二分 但是一般不会用map做二分
//所以map我们会尽可能用unordered_map
return 0;
}