当前位置:首页 > 学习英语 > 专业英语 > 计算机英语>正文

c中map的用法

【计算机英语】 2016-03-20本文已影响

  下面小编就跟你们详细介绍下c中map的用法的用法,希望对你们有用。

  c中map的用法的用法如下:

  Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!

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

  mapmapstring; ? ? ? ? mapmapint;

  mapmapstring; ? ? ? ? map< char ,string>mapchar;

  mapmapchar; ? ? ? ? ? ?mapmapint;

  2. map添加数据;

  map maplive;

  1.maplive.insert(pair(102,"aclive"));

  2.maplive.insert(map::value_type(321,"hai"));

  3, maplive[112]="April";//map中最简单最常用的插入添加!

  3,map中元素的查找:

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

  map::iterator l_it;;

  l_it=maplive.find(112);

  if(l_it==maplive.end())

  cout<<"we do not find 112"<

  else cout<<"wo find 112"<

  4,map中元素的删除:

  如果删除112;

  map::iterator l_it;;

  l_it=maplive.find(112);

  if(l_it==maplive.end())

  cout<<"we do not find 112"<

  else ?maplive.erase(l_it); ?//delete 112;

  5,map中 swap的用法:

  Map中的swap不是一个容器中的元素交换,而是两个容器交换;

  For example:

  #include

  #include

  using namespace std;

  int main( )

  {

  map m1, m2, m3;

  map ::iterator m1_Iter;

  m1.insert ( pair ?( 1, 10 ) );

  m1.insert ( pair ?( 2, 20 ) );

  m1.insert ( pair ?( 3, 30 ) );

  m2.insert ( pair ?( 10, 100 ) );

  m2.insert ( pair ?( 20, 200 ) );

  m3.insert ( pair ?( 30, 300 ) );

  cout << "The original map m1 is:";

  for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )

  cout << " " << m1_Iter->second;

  cout ? << "." << endl;

  // This is the member function version of swap

  //m2 is said to be the argument map; m1 the target map

  m1.swap( m2 );

  cout << "After swapping with m2, map m1 is:";

  for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )

  cout << " " << m1_Iter -> second;

  cout ?<< "." << endl;

  cout << "After swapping with m2, map m2 is:";

  for ( m1_Iter = m2.begin( ); m1_Iter != m2.end( ); m1_Iter++ )

  cout << " " << m1_Iter -> second;

  cout ?<< "." << endl;

  // This is the specialized template version of swap

  swap( m1, m3 );

  cout << "After swapping with m3, map m1 is:";

  for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )

  cout << " " << m1_Iter -> second;

  cout ? << "." << endl;

  }

  6.map的sort问题:

  Map中的元素是自动按key升序排序,所以不能对map用sort函数:

  For example:

  #include

  #include

  using namespace std;

  int main( )

  {

  map m1;

  map ::iterator m1_Iter;

  m1.insert ( pair ?( 1, 20 ) );

  m1.insert ( pair ?( 4, 40 ) );

  m1.insert ( pair ?( 3, 60 ) );

  m1.insert ( pair ?( 2, 50 ) );

  m1.insert ( pair ?( 6, 40 ) );

  m1.insert ( pair ?( 7, 30 ) );

  cout << "The original map m1 is:"<

  for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )

  cout << ?m1_Iter->first<<" "<second<

  }

  The original map m1 is:

  1 20

  2 50

  3 60

  4 40

  6 40

  7 30

  请按任意键继续. . .

  7, ? map的基本操作函数:

  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的函数

网友评论

Copyright © 2019 All Rights Reserved

错不了学习网 版权所有

回到顶部