STL map
#include<stdio.h>
#include<map>
using namespace std;
/*
C++ Maps是一种关联式容器,包含“关键字/值”对
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的函数
*/
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结构中的两个分量。(来自百度文库,反正我是没怎么看懂- -)