c++哈希表

//插入,修改,查找,迭代器

//哈希表特点:查找 增加  删除 时间复杂度都是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;

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值