STL_map
2016-02-23 21:57
309 查看
基本概念
将key/value当作元素,进行管理。它们可根据key的排序准则自动将元素排序,要修改元素的key必须先删除拥有该key的元素,然后插入拥有新的key/value的元素。构造函数
map m:创建空映射,不包含任何元素map m(op):以op为排序准则,产生一个空的map
map m1(m2):复制c2中的元素到c1中
map m(const value_type first, const value_type last):复制[first, last)之间元素构成新映射
map m(const value_type first, const value_type last,op):以op为排序准则,复制[first, last)之间元素构成新映射。
成员函数
1.int size() const:返回容器元素个数2.bool empty() const:判断容器是否空,若返回true,表明容器已空。
3.insert函数
iterator insert(const value_type& x):插入元素x iterator insert(iterator it,const value_type& x):在迭代指针it处插入元素x void insert(const value_type *first,const value_type* last):插入[first, last)之间元素
4.erase函数
iterator erase(iterator it):删除迭代指针it处元素 iterator erase(iterator first,iterator last):删除[first, last)之间元素 size_type erase(const Key& key):删除键值等于key的元素
5.iterator begin():返回首元素的迭代器指针
6.iterator end():返回尾元素的迭代器指针
int count(const Key& key) const:返回键值等于key的元素的个数
8.const_iterator find(const Key& key) const:查找功能,返回键值等于key的迭代器指针
void swap(set& s):交换但映射元素
void swap(multiset& s):交换多映射元素
应用实例
#include "stdafx.h" #include <iostream> #include <map> using namespace std; bool fncomp (char lhs, char rhs) {return lhs<rhs;} struct classcomp { bool operator() (const char& lhs, const char& rhs) const {return lhs<rhs;} }; int main () { map<char,int> first; first['a']=10; first['b']=30; first['c']=50; first['d']=70; map<char,int> second (first.begin(),first.end()); map<char,int> third (second); map<char,int,classcomp> fourth; // class as Compare bool(*fn_pt)(char,char) = fncomp; map<char,int,bool(*)(char,char)> fifth (fn_pt); // function pointer as Compare return 0; }
#include "stdafx.h" #include <iostream> #include <map> using namespace std; int main () { map<char,int> mymap; map<char,int>::iterator it; mymap['a'] = 10; mymap['b'] = 20; mymap['c'] = 30; mymap['d'] = 40; mymap['e'] = 50; mymap.insert(pair<char,int>('f',60)); cout<<"initial mymap contains :\n"; for (it = mymap.begin();it!= mymap.end();it++) { cout<<it->first<<"=>"<<it->second<<'\n'; } it = mymap.find('b'); mymap.erase(it); mymap.erase('c'); it = mymap.find('e'); mymap.erase(it,mymap.end()); cout<<"now mymap contains :\n"; for (it = mymap.begin();it!= mymap.end();it++) { cout<<it->first<<"=>"<<it->second<<'\n'; } return 0; }
相关文章推荐
- python 对象的魔力--多态、封装和继承
- 播放音乐
- bzoj2565 最长双回文子串
- 偷盗:百科的翻板动画
- struts2拦截器的实现原理
- 根据一份web.xml文件来详解Servlet
- 面向对象7
- Android Service的生命周期
- PAT1033旧键盘打字
- 334. Increasing Triplet Subsequence【M】【69】
- BZOJ1491 [NOI2007] 社交网络
- Java 反射修改 final 属性值
- 最简单的线程结构(自学笔记)
- 守护进程(daemon)
- Binder机制浅析
- SVG绘制圆形简单示例分享
- bitmap 获取网络图片
- hibernate快速入门案例
- uva 120 Stacks of Flapjacks 煎饼
- 一张图看清Linux 内核运行原理