- //unordered_map
- bool containsDuplicate(vector<int>& nums){
- unordered_map<int, bool> sub;
- for(auto i : nums){
- auto it = sub.find(i);
- if(it!=sub.end()&&it->second==true) return true;
- else sub[i]=true;
- }
- return false;
- }
无序关联容器:unordered_set unordered_map unordered_multiset unordered_multimap;等使用键和哈希表,优点:快速读取数据;哈希函数将键转换为索引值,Hash
无序关联容器定义的类型
类型 值 X::key_type Key,键类型,一般不应用; X::key_equal
检查两个类型为key的参数是否相等;
unordered_map X::hasher 应用的hash函数,一个二元函数对象 在c++11新标准中引入了unordered_set以及unordered_map,其背后是根据hash实现,而set、map等背后是根据RB_tree实现,在实现hash时,需要将数据转换为对应的hash码,放入对应的bucket中,所以这里的hash function是至关重要的, 如输出默认的hasher()函数生成的hash码: unordered_**中存放自定义的结构体时,就需要自己定义hash function;
cout<<"or:"<