原文地址:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html

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;

5,map中 swap的用法:

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

  For example:

  #include <map>

  #include <iostream>

using namespace std;

int main( )

  {

      map <int, int> m1, m2, m3;

      map <int, int>::iterator m1_Iter;

m1.insert ( pair <int, int>  ( 1, 10 ) );

      m1.insert ( pair <int, int>  ( 2, 20 ) );

      m1.insert ( pair <int, int>  ( 3, 30 ) );

      m2.insert ( pair <int, int>  ( 10, 100 ) );

      m2.insert ( pair <int, int>  ( 20, 200 ) );

      m3.insert ( pair <int, int>  ( 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 <map>

  #include <iostream>

using namespace std;

int main( )

 {

   map <int, int> m1;

   map <int, int>::iterator m1_Iter;

m1.insert ( pair <int, int>  ( 1, 20 ) );

   m1.insert ( pair <int, int>  ( 4, 40 ) );

   m1.insert ( pair <int, int>  ( 3, 60 ) );

   m1.insert ( pair <int, int>  ( 2, 50 ) );

   m1.insert ( pair <int, int>  ( 6, 40 ) );

   m1.insert ( pair <int, int>  ( 7, 30 ) );

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

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

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

  

}

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

C++ map的基本操作和使用的更多相关文章

  1. c++ map 的基本操作

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

  2. C++中map的基本操作和使用;

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

  3. 【转】 C++ map的基本操作和使用

    1.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 2.map的功能 自 ...

  4. 转载:C++ map的基本操作和使用

    声明:本文转自:http://www.cnblogs.com/hailexuexi/archive/2012/04/10/2440209.html 1.map简介 map是一类关联式容器.它的特点是增 ...

  5. map的基本操作函数及含义

    map的基本操作函数:      C++ Maps是一种关联式容器,包含“关键字/值”对      begin()          返回指向map头部的迭代器      clear()        ...

  6. cocos2d-x3.2中map的基本操作和使用

    在游戏开发中,我们有时候会用到map,而map的使用方法我简单给大家介绍一下.Map是c++的一个标准容器,她提供了非常好一对一的关系,在一些程序中建立一个map能够起到事半功倍的效果,总结了一些ma ...

  7. C++使用: C++中map的基本操作和用法

    在阅读SSD代码中发现作者使用了C++中的map方法,因此搜索该关联式容器的使用方法,在这里一并总结. 一.Map 簡介 Map是STL的一個容器,它提供一對一的hash. 第一個可以稱為關鍵字(ke ...

  8. 【转】C++ map的基本操作和使用

    1.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响较小,除了那个操作节点,对其它的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 2.map的功能 自 ...

  9. C++STL之map的基本操作

    STL中基本的关联式容器有map和set,它们都是以红黑树作为其底层的结构,具有非常高的查找.删除效率,内容会按照键值自动排序. 使用map的注意事项: 1.关联式容器的键值是不允许修改的,所以永远不 ...

随机推荐

  1. 邮件中嵌入html中要注意的样式

    工作中常会有需求向用户发送邮件,需要前端工程师来制作html格式的邮件,但是由于邮件客户端对样式的支持有限,要兼容很多种浏览器需要注意很多原则: 1.邮件使用table+css布局 2.邮件主要部分在 ...

  2. Javacript实现字典结构

    字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...

  3. Visual Studio:error MSB8020(搬运)

    状况如下: error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build ...

  4. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  5. JQuery阻止事件冒泡

    冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 我们在平时的开发过程中,肯定会遇到在一个div(这个div可以是元素)包裹一个div的情况,但是呢,在这两个div上都添加了事件,如果点 ...

  6. 跟着老男孩教育学Python开发【第四篇】:模块

    双层装饰器示例 __author__ = 'Golden' #!/usr/bin/env python # -*- coding:utf-8 -*-   USER_INFO = {}   def ch ...

  7. 我的MYSQL学习心得(十七) 复制

    我的MYSQL学习心得(十七) 复制 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  8. Mono 3.2.7发布,JIT和GC进一步改进

    Mono 3.2.7已经发布,带来了很多新特性,如改进的JIT.新的面向LINQ的解释器以及使用了64位原生指令等等. 这是一次主要特性发布,累积了大约5个月的开发工作.看上去大部分改进都是底层的性能 ...

  9. ASP.Net MVC 5 in Xamarin Studio 5.2

    Xamarin Studio 是一个Mono的跨平台 IDE(Integrated Development Environment),支持Wiindow和Mac,最新发布的5.2 版本支持ASP.NE ...

  10. Go语言实战 - revel框架教程之CSRF(跨站请求伪造)保护

    CSRF是什么?请看这篇博文“浅谈CSRF攻击方式”,说的非常清楚. 现在做网站敢不防CSRF的我猜只有两种情况,一是没什么人访问,二是局域网应用.山坡网之前属于第一种情况,哈哈,所以至今没什么问题. ...