STL模板整理 map

map容器:

继上一篇 ,Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。至于二叉树这种数据结构,本人暂时没有任何了解。在map这个容器中,提供一种“键- 值”关系的一对一的数据存储能力。其“键”在容器中不可重复,且按一定顺序排列,至于怎么排列,那么红黑树这种数据结构的特性了。

       KEY           VALUE

  x1  <---------> y1

键 x2  <---------> y2    值

  x3  <---------> y3

#include <iostream>
#include <map>
using namespace std;int main() {
    map <int, string> m1 = {{ 3, "guangzhou" }, { 2, "shenzhen" }, { 1, "changsha" } };//实例化一个map容器,内含三组数据
    /*
    begin()          返回指向map头部的迭代器
    clear()         删除所有元素
    count()          返回指定元素出现的次数
    empty()          如果map为空则返回true
    end()            返回指向map末尾的下一个迭代器
    erase()          删除一个元素
    find()           查找一个元素
    insert()         插入元素
    max_size()       返回可以容纳的最大元素个数
    size()           返回map中元素的个数
    swap()           交换两个map
    rbegin()         反向迭代器,指向最后一个迭代器
    rend()           指向map头结点的前一个迭代器
    */
    map <int, string>::iterator itor = m1.begin();
    for( ; itor != m1.end(); itor++)
        cout << itor->first << " " << itor->second << endl;
    //以数组的方式插入数据;
    /*for(int i = 1; i < 5; i++)
    {
        string s;
        cin>>s;
        m1[i] = s;
    }
    cout << " 插入数据后:" << endl; 
    itor = m1.begin();
    for( ; itor != m1.end(); itor++)
        cout << itor->first << " " << itor->second << endl;
    */
    return 0;
}  

 

posted @ 2018-03-28 13:54  GHzz  阅读(225)  评论(0编辑  收藏  举报