//插入,修改,查找,迭代器
//哈希表特点:查找 增加 删除 时间复杂度都是O(1)
//数组查找时间复杂度为o(1),删除时间复杂度为O(n),增加节点复杂度为O(n)
//链表查找时间复杂度为o(n),删除时间复杂度为O(1),增加节点复杂度为O(1)
Int main(){
unordered_map<int ,int>_map;//第一个Int是键的类型,第二个int是val的类型
_map[1] = 111;
_ map[2] = 222;
_map[4] = 444;
_map[3] = 333;
//unordered_map不会按照key的大小去排序
_map[4] = 666;//因为已经存在key为4的键值对 所以本行代码修改了4 444为4 666
for(auto it :_map)//it 代表每一个键值对
{
cout <<it.first<<""<<it.second<<end;
}
_map.insert()make_pair(7,7);//插入元素
_map.insert()make_pair(7,8);//若哈希表中出存在key为7的键值对 哈希表不会做出任何改变
//迭代器可以看成指针可以++,*,—>
unordered_map<int ,int>::iterator it = _map.begin();//it 指向哈希表中第一个键值对
//end()是哈希表最后一个元素的下一个
cout<<it->first<<endl;//输出第一个元素的key
cout<<it->second<<endl;//输出第一个元素的val
For(;it!=_map.end();it++){
cout<<it->first<<""<<it->second<<endl;
//find(key),参数是键 返回值为迭代器,如果哈希表中存在键为key的元素 返回指向该元素的迭代器 否则返end()}
if(_map.find(8) == _map.end())//若哈希表中妹有键值为8的键值对
cout<<"不存在键值为8的键值对<<endl"
If(_map.find(7) != _map.end())
cout<<"存在键值为7的键值对"<<endl;
}