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 交换两个向量的元素。