关联容器<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交换两个向量的元素。
阅读全文
0 0
- STL::map关联容器
- C++ 关联容器 map
- 关联容器Map
- ACE 关联容器 MAP
- C++MAP关联容器
- 初识关联容器 map
- 关联容器之map
- 关联容器 map
- 关联容器 map
- 关联容器map set
- 关联容器 Map
- 使用map关联容器
- map关联容器
- map关联容器
- C++map关联容器
- 关联式容器-map
- map关联容器
- 关联容器map
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(二) Logstash简介及常见配置语法
- docker安装rabbitmq及插件启动
- pip 警告!The default format will switch to columns in the future
- storm入门简介、架构原理分析
- flask表单post传数据
- 关联容器<map>
- Python·Jupyter Notebook各种使用方法记录·持续更新
- python|格式化方法——format()
- 338. Counting Bits
- Git命令大集结
- 【ORACLE】Runstatus_pkg 性能比较工具脚本及使用
- Elasticsearch_基本操作
- BZOJ 1059 矩阵游戏 二分图匹配
- Swift项目引入react-native