在游戏开发中,我们有时候会用到map,而map的使用方法我简单给大家介绍一下。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是一种关联式容器,包括“keyword/值”对

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

cocos2d-x3.2中map的基本操作和使用的更多相关文章

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

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

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

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

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

    原文地址:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可 ...

  4. c++ map 的基本操作

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

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

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

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

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

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

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

  8. C++STL中map容器的说明和使用技巧(杂谈)

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

  9. C++11中map的用法

    最全的c++map的用法 1. map最基本的构造函数:map<string ,int>mapstring; map<int,string >mapint;map<sri ...

随机推荐

  1. 最简单的历史Hibernate获得短暂的

    其实Hibernate本身就是一个单独的帧,不管它不需要web server或application server支持. 然而,最Hibernate简介已经加入了非常多的非Hibernate事,例: ...

  2. VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器

                        VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器      View Compose服务可安装在管理虚拟机的vC ...

  3. IIS6,IIS7中查看w3wp进程

    当我们服务器创建了很多应用程序池,然后某个w3wp.exe进程占用CPU和内存过高,我们怎么查找这个w3wp.exe进程属于哪一个网站呢.其实微软为我们提供了很好的查看工具: 首先打开windows任 ...

  4. go语言实现遍历目录,及查找特定的文件类型

    // filelist.go package main import ( //"flag" "fmt" "os" "path/fi ...

  5. 【原创】用Python爬取LeetCode的AC代码到Github

    在leetCode写了105道题高调膜科,考虑搬迁到自己的GitHub上,做成一个解题题库,面试的时候也可以秀一个 但是!但是! leetCode在线IDE的功能不要太舒服,我直接线上A了不少题,本地 ...

  6. hdu 4308 Saving Princess claire_ BFS

    为了准备算法考试刷的,想明确一点即可,全部的传送门相当于一个点,当遇到一个传送门的时候,把全部的传送门都压入队列进行搜索 贴代码: #include <iostream> #include ...

  7. 基于ICSharpCode.SharpZipLib.Zip的压缩解压缩

    原文:基于ICSharpCode.SharpZipLib.Zip的压缩解压缩 今天记压缩解压缩的使用,是基于开源项目ICSharpCode.SharpZipLib.Zip的使用. 一.压缩: /// ...

  8. iOS开展-clang: error: unknown argument: &#39;-websockets&#39;解决方案

    问题: 昨天莫名其妙Xcode自己主动升级,那么今天之前执行project什么时候,不知怎的,他们都获得了. 错误内容: clang: error: unknown argument: '-webso ...

  9. 信息二战炸弹:中国到美国咨询公司Say no

    疯抢/文 在禁止Windows8操作系统參与政府採购,以及在中国销售的全部外国IT产品和服务都须通过新的安全审查之后,英国<金融时报>今天报料中国已禁止国企使用美国咨询公司服务. 这则消息 ...

  10. HDOJ 5188 zhx and contest 贪婪+01背包

    zhx and contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...