STL

Map

/*pair

  1. pair类型的定义和初始化
  • pair <T1,T2>p; // 定义了一个空的pair对象p
  • pair<T1,T2>p(v1,v2); //定义了包含初始值为v1和v2的pair对象p
  • make_pair(v1,v2);//以v1和v2值创建一个新的pair对象
  1. pair对象的一些操作
  • p.first
  • p.second

pair<int,string> p(0, “Hello”);

printf(“%d %s ”,p.first,p.second.c_str());

*/

1.map最基本的构造函数:

map<string , int > mapstring;              map<int ,string > mapint;

map<string,char>mapstring;             map<char, string>mapchar;

map<char,int>mapchar;                map<int,char>mapint;

2.map添加数据

map<int ,string>maplive;

(1)    maplive.insert(pair<int string>(102, “active”));

(2)    maplive.insert(map<int,string> : :value_type(321, “hai”);

(3)    maplive[112] = “April”; //map中最简单最常用的插添加;

3.map中元素的查找:

find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。

map<int,string> : : iterator l_it;;

l_it = maplive.find(112);

if(l_it == maplive.end())

 printf(“we do not find 112”);

else

printf(“we find 112”);

4.map中元素的删除

如果删除112;

map<int,string> :: iterator 1_it;;

l_it = maplive.find(112);

if(l_it == maplive.end())

printf(“we do not find 112”);

else

maplive.erase(l_it); //删除112

5.容量查询

// 查询map是否为空

bool empty();

// 查询map中键值对的数量

size_t size();

// 查询map所能包含的最大键值对数量,和系统和应用库有关。

// 此外,这并不意味着用户一定可以存这么多,很可能还没达到就已经开辟内存失败了

size_t max_size();

// 查询关键字为key的元素的个数,在map里结果非0即1

size_t count( const Key& key ) const;

6.删除

// 删除迭代器指向位置的键值对,并返回一个指向下一元素的迭代器

iterator erase( iterator pos )

// 删除一定范围内的元素,并返回一个指向下一元素的迭代器

iterator erase( const_iterator first, const_iterator last );

// 根据Key来进行删除, 返回删除的元素数量,在map里结果非0即1

size_t erase( const key_type& key );

// 清空map,清空后的size为0

void clear();

7.交换

//就是两个map的内容交换

void  swap( map & other);

8.的基本操作函数

      begin()          返回指向map头部的迭代器
      clear()         删除所有元素
      count()          返回指定元素出现的次数
      empty()         如果map为空则返回true
      end()             返回指向map末尾的迭代器
      erase()          删除一个元素
      find()            查找一个元素
      insert()         插入元素
      key_comp()    返回比较元素key的函数
      size()           返回map中元素的个数
      swap()            交换两个map

9.功能

(1).自动建立Key – value的对应

(2).快速插入Key – Value 记录

(3).快速删除记录

(4).根据Key修改value记录

(5).遍历所有记录

10.应用

代替Hash

原文地址:https://www.cnblogs.com/rax-/p/9792097.html