STL map

原创 2016年03月28日 22:17:27

stl中的map和set一样,都是关联性容器,内部实现是红黑树,所以检索速率高效。不同的是,map的数据形式是键值对,即Key-value。而且需要注意的是在map中,key值唯一,并默认会根据key的字典序进行升序排序。

数据插入

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】http://blog.csdn.net/it_yuan/article/details/22697205

以STL::map实现引用表

  • 2016年01月15日 18:31
  • 2KB
  • 下载

stl容器map的使用

  • 2014年07月20日 21:35
  • 26KB
  • 下载

STL之map函数用法(九阴真经)

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候...

windbg导出stl map和set的插件

  • 2014年07月28日 16:53
  • 153KB
  • 下载

c/c++ stl_map

  • 2011年06月30日 10:15
  • 232KB
  • 下载

STL中关于map和set的四个问题?

STL map和set的使用虽不复杂,但也有一些不易理解的地方,如: # 为何map和set的插入删除效率比用其他序列容器高? # 为何每次insert之后,以前保存的iterator不会...

STL中map容器使用自定义key类型报错详解

引言 STL的map容器中,key的类型是不是随意的呢? 实践 编写测试代码 定义一个结构体来试试: struct a { char* pName; int m_a; };map m...
  • mfcing
  • mfcing
  • 2015年03月09日 17:37
  • 10535

STL中map用法详解.rar

  • 2009年10月28日 12:25
  • 16KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STL map
举报原因:
原因补充:

(最多只允许输入30个字)