cpp的STL之map
来源:互联网 发布:中国环保产业数据 编辑:程序博客网 时间:2024/06/14 04:21
cpp的STL之map
map/multimap
map key-value存储,可以理解为关联数组或者字典multimap 运行一个key存储多个值
使用
//// main.cpp// use_stl_map//// Created by bikang on 16/10/28.// Copyright (c) 2016年 bikang. All rights reserved.//#include <iostream>#include <map>using namespace std;struct Test{ bool operator ()(const int &a,const int &b) const{ return (a < b); }};void tmap();int main(int argc, const char * argv[]) { tmap(); return 0;}void tmap(){ cout << "test map" << endl; map<int, string> m1; multimap<int, string> mm1; //插入 m1.insert(map<int, string>::value_type(1,"a")); m1.insert(map<int, string>::value_type(1,"aa")); m1.insert(map<int, string>::value_type(2,"b")); m1.insert(map<int, string>::value_type(3,"c")); m1.insert(pair<int, string>(4,"dd")); cout << "m1.size=" << m1.size() << endl; //访问元素 cout << "m1[1]=" << m1[1]<< endl; //打印 map<int, string>::iterator elem; for(elem=m1.begin();elem!=m1.end();++elem){ cout << "key:" << elem->first<<","; cout << "value:" << elem->second; cout << endl; } //查找 elem = m1.find(1); if(elem != m1.end()){ cout << elem->first << "=>" << elem->second << endl; }else{ cout << "find faild" << endl; } //删除 //1 通过key删除 2 通过elem删除 3 通过边界删除 m1.erase(1); m1.erase(m1.begin()); for(elem=m1.begin();elem!=m1.end();++elem){ cout << "key:" << elem->first<<","; cout << "value:" << elem->second; cout << endl; } //使用谓词 比较函数 /** 在C++中用到map时,如果KEY是自定义的struct,那么需要自己定义比较函数。因为只有基本类型有默认的比较方法。 定义的方法有两种,一是在作为key的struct中,重载操作符less(<),二是自定义仿函数作为map的比较函数,个人比较喜欢第二种方法。 **/ map<int, int,Test> m11; m11.insert(pair<int, int>(1,1)); m11.insert(pair<int, int>(2,2)); m11.insert(pair<int, int>(3,3)); m11.insert(pair<int, int>(4,4)); cout << m11[1] << " " << m11[2]<<endl; cout << (m11[1] > m11[2]) << endl;}
0 0
- cpp的STL之map
- cpp的STL之string
- cpp的STL之list
- cpp的STL之set
- STL之Map的运用
- STL之map的使用方法
- STL之Map:Map的基本用法
- 【STL】STL之map
- Cpp--STL的组成
- cpp的STL算法
- STL之map函数的用法
- C++ STL之map的使用方法
- STL之map的基本使用
- STL之map类的学习
- C++的STL进一步总结之map
- STL之map的高级用法
- STL之MAP的详细使用介绍
- STL之map和set的异同
- <c:forEach></c:forEach>嵌套的用法与for的区别
- 废话少说 分析java抽象类与接口的区别
- Android手机连接蓝牙播放时,蓝牙设备如何显示歌名、专辑、歌手等信息?
- c语言中的 static
- 使用eclipse4.5创建maven项目
- cpp的STL之map
- 解决“The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path”问题
- jquery Ajax 通过jsonp的方式跨域提交表单
- 通过js动态生成对象,并给对象赋值
- Docker之 Failed to get D-Bus connection: Operation not permitted
- mysql研究(一)
- tr虚线border在火狐浏览器加载异常问题
- linux 命令 之 scp
- ganglia 配置文件