C++ map的使用总结

说到C++中的Map这个容器,如果你以前接触过其他高级编程语言,比如C#,Object-C等等,其实这个东西就是字典Dictionary。提供一种键值对,听说C++中的这个MAP底层是用红黑树这种很牛逼的数据结构实现的,红黑树大部分数据结构的书都会提到,但都会简单的一笔带过。因为真的不是人人都能学会的,,,

好了,接着说我们的map

1、要用这个map的话,你必须包含他的头文件

#include <map>

2、map的几个构造函数

map<keyType, valueType> mapName; //这里的keyType,valueType用你想要的键类型换掉,比如int、string等等

3、map如何添加数据

想定义一个map

map<int, string> GLmap ;

map添加元素一共有4中方式

第一种:GLmap.insert(make_pair<int, string>(1, "Steve Jobs")) ;

第二种:GLmap.insert(pair<int, string>(2, "Apple")) ;

第三种:GLmap.insert(map<int, string>::value_type(3, "Bill Gates") ;

第四种:GLmap[4] = "Microsoft" ;

4、添加完了数据元素,那么可以开始查找了

map提供了一个find函数,用来查找元素,这个函数的返回值是指向查找到的那个元素对应的迭代器,如果没有找到的话,find函数将会返回一个指向map尾部的迭代器

//这里说明一下,map一共有两个比较特殊的迭代器值,一个就是开始,另一个就是结束,比如GLmap.begin() 和GLmap.end()

 map<int, stirng>::iterator GLiterator ; //定义一个迭代器

GLiterator = GLmap.find(2);

  if(GLiterator != GLmap.end()) cout<<"find it" ;

else cout<<"can not find the key" ;

5、讲完了查找,那么如何删除呢?

 map<int, stirng>::iterator GLiterator ; //定义一个迭代器

GLiterator = GLmap.find(2);

  if(GLiterator != GLmap.end()) {

cout<<"find it" ;

GLmap.erase(GLiterator) ; //删除指定的元素,有一点需要注意,这样子用迭代器的删除元素的方法在迭代过程中是不能删除的

}

else cout<<"can not find the key" ;

6、迭代数据 
  for   (GLiterator =GLmap .begin();   GLiterator !=GLmap .end();   ++GLiterator )   {} 

7、其他应用请参考C++手册

http://www.cplusplus.com/reference/map/map/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值