C++ STL map使用

摘要:
Map是c++的标准容器,它提供了良好的一对一关系。在某些程序中创建地图可以事半功倍。本文总结了地图的一些简单实用的操作!1.地图构造器;映射<字符串,int>mapstring;映射<int,字符串>mapint;映射<字符>mapstring;映射<字符、字符串>地图字符

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的sort问题:
Map中的元素是自动按key升序排序,所以不能对map用sort函数

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

//使用map的Demo

 1 void CLoadDllDemoDlg::OnBnClickedButton17()
 2 {//STL MAP
 3     /*定义CString为key,int值为value的map*/
 4     std::map<CString, int>mapDemo;
 5 
 6     for(int i = 0; i < 10; i++)
 7     {//添加数据
 8         CString strKey;
 9         strKey.Format(_T("key:%d"), i);
10         /*方法1*/
11         mapDemo.insert(std::make_pair<CString, int>(strKey, i));
12         /*方法2*/
13         //mapDemo.insert(map<CString, int>::value_type (strKey, i)); 
14     }
15 
16     /*查找数据*/
17     CString strFindKey;
18     std::map<CString, int>::iterator itFind;
19     for(int p = 0; p < 15; p++)
20     {
21         strFindKey.Format(_T("key:%d"), p);
22         itFind = mapDemo.find(strFindKey);
23         if(itFind != mapDemo.end())
24         {//找到数据
25             int nVal = itFind->second;
26             if(9 == nVal)
27             {//删除该条数据
28                 mapDemo.erase(itFind);
29             }
30         }
31     }
32 }

免责声明:文章转载自《C++ STL map使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring MVC与Dubbo的整合一puppeteer安装/爬取数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]走近 STL

原文:http://www.vckbase.com/document/viewdoc/?id=1461   本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者。这实际上是我学习STL的一篇笔记,老鸟就不用看了。 什么是泛型程序设计我们可以简单的理解为:使用模板的程序设计就是泛型程序设计。就像我...

03点云文件常用格式转换(pcd,txt,ply,obj,stl)

1.  pcd转txt 1 #include <iostream> 2 #include <fstream> 3 #include <pcl/io/pcd_io.h> 4 5 int main(int argc, char *argv[]) 6 { 7 8 pcl::PointClou...

C++ STL hash表用法

C++ STL unordered_map用法 在C++11中,unordered_map作为一种关联容器,替代了hash_map,unordered_map的底层实现是hash表,所以被称为无序关联容器。不管是map还是unordered_map都是一种 key-map(value) 映射的容器,提供非常高的查找效率,下面我们来了解unordered_m...

STL之stack栈

概述 栈(statck)这种数据结构在计算机中是相当出名的。 栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。 在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。因此实现非常的方便。 namespace...

stl的stack在开发中的应用

 栈有后进先出特点,我们可以用它来暂时保存数据,在画板开发中,我用到了栈来保存用户的每一步操作,当用户点击撤销时可以把图像从栈里面取出,然后恢复。浏览器的前进和后退也是这个原理,只是它保存的是网页罢了。用stl可以轻松使用栈而不用去做复杂的函数定义,看下面的实例,希望通过下面的实例,让大家了解怎么用stl中的stack以及如何使用栈 #include &l...

C++ 迭代器(STL迭代器)iterator详解

要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行,迭代器是一个变量,相当于容器和操作容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类型。 迭代器按照定义方式分为以下四种: 正向迭代器,定义方式: 容器类名::iterator 迭代器名; 常量正向迭代器,定义方式...