标准模板库STL之map

转载:http://www.cnblogs.com/drq1/p/9699482.html#undefined

https://www.w3cschool.cn/cpp/cpp-fu8l2ppt.html

一、Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。

二、map具体代码实现

1、map最基本的构造函数;

   map<string , int >mapstring;         map<int ,string >mapint;

   map<sring, char>mapstring;         map< char ,string>mapchar;

   map<char ,int>mapchar;            map<int ,char >mapint;

2、map添加数据;

   map<int ,string> maplive;  
   1.maplive.insert(pair<int,string>(102,"aclive"));
   2.maplive.insert(map<int,string>::value_type(321,"hai"));
   3, maplive[112]="April";//map中最简单最常用的插入添加!

3、map中元素的查找:

   find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。        

 map<int ,string >::iterator l_it;; 
   l_it=maplive.find(112);
   if(l_it==maplive.end())
                cout<<"we do not find 112"<<endl;
   else cout<<"wo find 112"<<endl;

4、map中元素的删除:

   如果删除112;

 map<int ,string >::iterator l_it;;   
   l_it=maplive.find(112);
   if(l_it==maplive.end())
        cout<<"we do not find 112"<<endl;
   else  maplive.erase(l_it);  //delete 112;

5、map的基本操作函数:

    C++ Maps是一种关联式容器,包含“关键字/值”对

    begin()          返回指向map头部的迭代器

    clear()         删除所有元素

    begin()          返回指向map头部的迭代器

    clear()         删除所有元素

    count()          返回指定元素出现的次数

    empty()          如果map为空则返回true

    end()            返回指向map末尾的迭代器

    equal_range()    返回特殊条目的迭代器对

    erase()          删除一个元素

    find()           查找一个元素

    get_allocator()  返回map的配置器

    insert()         插入元素

    key_comp()       返回比较元素key的函数

    lower_bound()    返回键值>=给定元素的第一个位置

    max_size()       返回可以容纳的最大元素个数

    rbegin()         返回一个指向map尾部的逆向迭代器

    rend()           返回一个指向map头部的逆向迭代器

    size()           返回map中元素的个数

    swap()            交换两个map

    upper_bound()     返回键值>给定元素的第一个位置

    value_comp()      返回比较元素value的函数

猜你喜欢

转载自blog.csdn.net/zhao2chen3/article/details/85010146