关联容器<map>

来源:互联网 发布:linux vim u撤销不了 编辑:程序博客网 时间:2024/06/07 16:33

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




原创粉丝点击