STL之map实现
2015-05-15 18:25
169 查看
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结构中的两个分量。(来自百度文库,反正我是没怎么看懂-
-)
相关文章推荐
- STL中vector的实现原理 (衍生:Map, Set等实现原理)
- STL源码中map和set中key值不能修改的实现
- STL中map、set的数据结构及底层实现
- stl容器区别: vector list deque set map-底层实现
- 241 map 在什么情况下会发生死锁;stl 中的 map 是怎么实现的?
- STL中map实现原理
- STL源码中map和set中key值不能修改的实现
- STL中map、set的数据结构及底层实现 (转载)
- stl容器区别: vector list deque set map-底层实现
- STL中map、set的数据结构及底层实现
- 文章标题STL中vector,Map,Set的实现原理
- STL中map、set的数据结构及底层实现
- STL中vector,Map,Set的实现原理
- 简述stl 中set,vector,map的查找效率以及如何实现的?
- 词频统计的C++实现(使用stl--map)
- STL中map、set的数据结构及底层实现
- C/C++知识要点2——STL中Vector、Map、Set容器的实现原理
- STL中map和set底层的红黑树实现
- 以STL::map实现引用表的一种方式
- 使用C++STL的map容器实现一种命令映射