关联容器<map>

1.声明

//头文件
#include<map>
map<int, string> ID_Name;
map<long,TreeNodeData> m_mapTreeNode;

2.插入操作

m_mapTreeNode.insert(pair<long, TreeNodeData>(SU::ToLong(strId),tempData));
map<T,T> p
p.insert(pair<T,T>(T,T));

3.Key值检测

3.1在map中,由key查找value时,首先要判断map中是否包含key。

3.2、如果不检查,直接返回map[key],可能会出现意想不到的行为。如果map包含key,没有问题,如果map不包含key,使用下标有一个危险的副作用,会在map中插入一个key的元素,value取默认值,返回value。也就是说,map[key]不可能返回null。

3.3、map提供了两种方式,查看是否包含key,m.count(key),m.find(key)。

3.4、m.count(key):由于map不包含重复的key,因此m.count(key)取值为0,或者1,表示是否包含。

3.5、m.find(key):返回迭代器,判断是否存在。

3.6、对于下面的场景,存在key就使用,否则返回null,有下面两种写法:

if(m.count(key)>0)
{
    return m[key];
}
return null;
------------------------------------------------------------------------------------------------------------------------------------
 iter = m.find(key);
 if(iter!=m.end())
 {
     return iter->second;
 }
 return null;

4.遍历

使用迭代器进行遍历,非常方便。

iterator begin( );  // 返回指向映射中第一个元素的迭代器

iterator end( );    // 返回指向映射中最后一个元素的迭代器

for (map<string, int>::iterator map_it = map_str.begin(); map_it != map_str.end(); map_it++)
{
     cout << "key:  " << map_it->first << "value:   " << map_it->second;   
   // map_it->first表示键值对的第一个值,也就是键的值,map_it->second表示键值对的第二个值,也就是键对应的值
}

5.成员函数

at      查找具有指定键值的元素。
begin	返回一个迭代器,此迭代器指向映射中的第一个元素。
cbegin	返回一个常量迭代器,此迭代器指向映射中的第一个元素。
cend	返回一个超过末尾常量迭代器。
clear	清除映射的所有元素。
count	返回映射中其键与参数中指定的键匹配的元素数量。
crbegin	返回一个常量迭代器,此迭代器指向反向映射中的第一个元素。
crend	返回一个常量迭代器,此迭代器指向反向映射中最后一个元素之后的位置。
emplace	将就地构造的元素插入到映射。
emplace_hint	将就地构造的元素插入到映射,附带位置提示。
empty	如果映射为空,则返回 true。
end	返回超过末尾迭代器。
equal_range	返回一对迭代器。 此迭代器对中的第一个迭代器指向 map 中其键大于指定键的第一个元素。 此迭代器对中的第二个迭代器指向 map 中其键等于或大于指定键的第一个元素。
erase	从指定位置移除映射中的元素或元素范围。
find	返回一个迭代器,此迭代器指向映射中其键与指定键相等的元素的位置。
get_allocator	返回用于构造映射的 allocator 对象的副本。
insert	将元素或元素范围插入到映射中的指定位置。
key_comp	返回用于对映射中的键进行排序的比较对象副本。
lower_bound	返回一个迭代器,此迭代器指向映射中其键值等于或大于指定键的键值的第一个元素。
max_size	返回映射的最大长度。
rbegin	返回一个迭代器,此迭代器指向反向映射中的第一个元素。
rend	返回一个迭代器,此迭代器指向反向映射中最后一个元素之后的位置。
size	返回映射中的元素数量。
swap	交换两个映射的元素。
upper_bound	返回一个迭代器,此迭代器指向映射中其键值大于指定键的键值的第一个元素。
value_comp	检索用于对映射中的元素值进行排序的比较对象副本。
shrink_to_fit	放弃额外容量。
size	返回vector元素个数
swap	交换两个向量的元素。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值