STL之map实现

来源:互联网 发布:方正兰亭黑简体 mac 编辑:程序博客网 时间:2024/05/19 16:33

STL map

#include<stdio.h>#include<map>using namespace std;/*C++ Maps是一种关联式容器,包含“关键字/值”对begin() 返回指向map头部的迭代器clear() 删除所有元素count() 返回指定元素出现的次数empty() 如果map为空则返回trueend() 返回指向map末尾的迭代器equal_range() 返回特殊条目的迭代器对erase() 删除一个元素find() 查找一个元素get_allocator() 返回map的配置器insert() 插入元素key_comp() 返回比较元素key的函数lower_bound() 返回键值>=给定元素的第一个位置max_size() 返回可以容纳的最大元素个数rbegin() 返回一个指向map尾部的逆向迭代器rend() 返回一个指向map头部的逆向迭代器size() 返回map中元素的个数swap() 交换两个mapupper_bound() 返回键值>给定元素的第一个位置value_comp() 返回比较元素value的函数*/int main(){    int n;    map<int,int>mymap;    int a[10]={3,1,2,5,3,6,7,9,6,3};    mymap.clear();//清零    int ans,t;        for(int i=0;i<10;i++)            mymap[a[i]]++;//进入map后自动排序,切每个元素只出现一次        map<int,int>::iterator it;//迭代器,可以理解为一个指针        for(it=mymap.begin();it!=mymap.end();it++)            printf("%d ",*it); //用迭代器指向首元素,it++指向下一个            printf("\n%d",mymap.count(3));//map中count作为判断是否存在返回值为0或1,对于find函数,暂时不作分析            printf("\n%d\n",mymap.empty());//空返回1,不空返回0            mymap.erase(9);//删除某元素            printf("erase 9:") ;             for(it=mymap.begin();it!=mymap.end();it++)            printf("%d ",*it);            printf("\n%d",mymap.size());//个数   return 0;}

映射和多重映射基于某一类型Key的键集的存在,提供对T类型的数据进行快速和高效的检索。对map而言,键只是指存储在容器中的某一成员。Map不支持副本键,multimap支持副本键。Map和multimap对象包涵了键和各个键有关的值,键和值的数据类型是不相同的,这与set不同。set中的key和value是Key类型的,而map中的key和value是一个pair结构中的两个分量。(来自百度文库,反正我是没怎么看懂- -)
 
0 0
原创粉丝点击