码迷,mamicode.com
首页 > 编程语言 > 详细

c++ map快速入门

时间:2015-07-09 21:20:38      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

  Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!
1. map最基本的构造函数;
   map<string , int >mapstring;         map<int ,string >mapint;
   map<sring, 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,"aclive"));
   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())
                cout<<"we do not find 112"<<endl;
   else cout<<"wo find 112"<<endl;
4,map中元素的删除:
   如果删除112;
   map<int ,string >::iterator l_it;;
   l_it=maplive.find(112);
   if(l_it==maplive.end())
        cout<<"we do not find 112"<<endl;
   else  maplive.erase(l_it);  //delete 112;

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

代码示例:

#include <iostream>
#include <map>
#include <set>
#include <string>
#include <vector>

using namespace std;

int main()
{
    map< string, int > mapForTest;
    mapForTest.insert( pair<string, int>( "jim", 67 ) );
    mapForTest.insert( make_pair( "john", 85 ) );
    mapForTest[ "jack" ] = 95;
    mapForTest[ "lily" ] = 96;
    cout << "Using iterator\n";
    map< string, int >::iterator it = mapForTest.begin();
    while( it != mapForTest.end() )
    {
        cout << it->first << " => " << it->second << endl;
        it ++;
    }
    cout << "Using reverse_iterator\n";
    map<string, int>::reverse_iterator reit = mapForTest.rbegin();
    while( reit != mapForTest.rend() )
    {
        cout << reit->first << " => " << reit->second << endl;
        reit ++;
    }
    cout << "Using [] to get the value\n";
    cout << "lily got the score of " << mapForTest["lily"] << endl;

    string query_name;
    cout << "please input the name to query\n";
    cin >> query_name;
    it = mapForTest.find( query_name );
    if( it == mapForTest.end() )
        cout << "there is no " << query_name << " in the database\n";
    else
        cout << "Use find(): " << query_name << " got the score of " << it->second << endl;

    mapForTest.clear();
    mapForTest.insert( make_pair( "tom", 89 ) );
    mapForTest.insert( pair<string, int>( "kevin", 86 ) );
    cout << "current size of mapForTest is: " << mapForTest.size() << endl;

    return 0;
}

执行情况如下所示:

技术分享

c++ map快速入门

标签:

原文地址:http://www.cnblogs.com/wangxuya/p/4634076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!