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实现引用表

stl容器map的使用

  • 2014-07-20 21:35
  • 26KB
  • 下载

STL中map用法详解

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

c/c++ stl_map

  • 2011-06-30 10:15
  • 232KB
  • 下载

STL总结之set/multiset和map/multimap

set和Multiset:

使用成员函数管理map STL

// Test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include ...

STL中map用法详解.rar

  • 2009-10-28 12:25
  • 16KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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