map和unordered_map的使用(中级)
map和unordered_map的使用(中级)
徐学良 发表于3年前
map和unordered_map的使用(中级)
  • 发表于 3年前
  • 阅读 59
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: 系统总结一下工作中常用到使用

map和unordered_map使用起来一样,但是unordered_map的性能比map要好非常多。

当我们需要一个有序的关联容器的时候,我们必须选择std::map,因为 unordered_map 内部元素不是有序的,这一点从名字都可以看出来,除此之外都应该选择 unordered_map 

头文件:

unordered_map     #include <unordered_map> 

map  不需要

使用:

定义map类型:typedef std::map<int, std::shared_ptr<A>> A_map;

                        A_map a_map;

查找并插入:

A_map::iterator iter = a_map.find(int_num);

if(iter ==a_map.end())
 {
  a_map.insert(std::make_pair(int_num, a_map_ptr));    //    a_map_ptr 必须是std::shared_ptr<A>类型的

}

查找并删除

A_map::iterator iter = a_map.find(int_num);

if(iter !=a_map.end())
 {
  a_map.erase(iter);

}

直接删除

a_map.erase(int_num);

清空

a_map.clear();


查找------------

A temp_a = a_map.find(int_num);

找不到新建

if(nullptr == temp_a)
 {
  temp_a.reset(new A());

a_map.insert(std::make_pair(int_num, temp_a));

 }

返回第二个元素的函数

std::shared_ptr<A> find_temp_a(const int &int num)
{

 A_map:iterator iter = a_map.find(int_num);
 if(iter != a_map.end())
 {
  return iter->second;
 }
 return nullptr;
}

标签: map map使用
共有 人打赏支持
粉丝 20
博文 187
码字总数 13440
×
徐学良
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: