STL map
2016-03-28 22:17
369 查看
stl中的map和set一样,都是关联性容器,内部实现是红黑树,所以检索速率高效。不同的是,map的数据形式是键值对,即Key-value。而且需要注意的是在map中,key值唯一,并默认会根据key的字典序进行升序排序。
【参考资料】
【1】http://www.cplusplus.com/reference/map/map/
【2】http://www.yolinux.com/TUTORIALS/CppStlMultiMap.html
【3】/article/8285613.html
数据插入
map添加数据可以有四种方式,分别是通过pair组合成键值对的形式,和数组的方式添加。#include <iostream> #include <string> #include <map> //****************************************************************** //FUNCTION: void addMapElements(std::map<int, std::string>& vMap) { vMap.insert(std::make_pair(1, "zhang san")); vMap.insert(std::pair<int, std::string>(3, "li si")); vMap.insert(std::map<int, std::string>::value_type(2, "wang wu")); vMap[5] = "freehyan"; } //****************************************************************** //FUNCTION: void printMap(const std::map<int, std::string>& vMap) { std::map<int, std::string>::const_iterator It; for (It=vMap.begin(); It!=vMap.end(); It++) { std::cout << It->first << " " << It->second << std::endl; } } int main() { std::map<int, std::string> Map; addMapElements(Map); printMap(Map); return 1; }
数据查找
map数据查找可以通过find和count函数,他们都是查找key值,如果存在,find()返回的是相应迭代器的指针,而count()返回的数值>=1。multimap
与map中key键值唯一不同,multimap允许键值重复,这是最重要的不同点。而且上面代码中map可以通过类似数组的形式添加数据,multimap是不可以的,只能通过其他三种形式。【参考资料】
【1】http://www.cplusplus.com/reference/map/map/
【2】http://www.yolinux.com/TUTORIALS/CppStlMultiMap.html
【3】/article/8285613.html
相关文章推荐
- 一次发现underscore源码bug的经历以及对学术界拿来主义的思考
- 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
- 【匈牙利算法】BZOJ1059-[ZJOI2007]矩阵游戏
- java 内存举例
- 板载RAID
- python 实现下载图片
- LVS 三种模式区别
- 整理hibernate 的set属性
- jumpserver 堡垒机环境搭建(图文详解)
- 阿里面试算法题-1-100随机替换两个为零,如何快速找出
- iOS开发之delegate设计模式
- Python基础知识:构造函数中self用法
- Java concurrentModificationException
- scala(2) 变长参数 lazy 异常处理 数组Array Map tuple
- Ansible11:变量详解
- jQuery中filter() 方法的使用
- bzoj 3240: [Noi2013]矩阵游戏
- Bios工程师手边事—PCI资源分配
- maven仓库--私服(Nexus的配置使用)
- ThreadLocal(2)--ThreadLocal源码(jdk1.7)