STL_map

来源:互联网 发布:古典音乐入门书籍 知乎 编辑:程序博客网 时间:2024/05/21 11:31

基本概念

将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):插入元素xiterator insert(iterator it,const value_type& x):在迭代指针it处插入元素xvoid 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():返回尾元素的迭代器指针

  1. int count(const Key& key) const:返回键值等于key的元素的个数
    8.const_iterator find(const Key& key) const:查找功能,返回键值等于key的迭代器指针
  2. void swap(set& s):交换但映射元素
  3. 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;  }  
0 0
原创粉丝点击