STL map使用
|
#include <iostream>
|
#include <map>
|
#include <utility>
|
int main()
{
map<int, string> Employee;
//通过键值赋值
Employee[123] = "Mayuefei";
//通过成员函数insert和STL的pair赋值
Employee.insert(pair<int, string>(132, "Liaoyuanqing"));
//通过value_type赋值
Employee.insert(map<int, string>::value_type(124, "Liyiyi"));
//通过make_pair赋值
Employee.insert(make_pair(234, "LLK.D"));
for (map<int, string>::iterator it = Employee.begin(); it != Employee.end(); it++)
{
cout<<(*it).first<<":"<<(*it).second<<endl;//取值操作
}
system("pause");
return 1;
};
STL map定义了比较操作符,所以其键值能够根据大小自动排序,若你用自己实现的类等数据类型作为键值时,就需要自己提供比较操作符和等于操作符:
struct cmp_str
{
bool operator()(char const *a, char const *b)
{
return std::strcmp(a, b) < 0;
}
};
int main()
{
map<char *, int, cmp_str> Employees;
// map使用自定义类型的例子
// 1) 通过键值赋值
Employees["Mike C."] = 5234;
Employees["Charlie M."] = 3374;
// 2) 通过成员函数insert() 和STL pair赋值
Employees.insert(std::pair<char *,int>("David D.",1923));
// 3)通过成员函数 insert() 和 "value_type()"
Employees.insert(map<char *,int>::value_type("John A.",7582));
// 4) 通过成员函数 insert() 和 "make_pair()"
Employees.insert(std::make_pair((char *)"Peter Q.",5328));
cout << "Map size: " << Employees.size() << endl;
for( map<char *, int, cmp_str>::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii)
{
cout << (*ii).first << ": " << (*ii).second << endl;
}
system("pause");
} //看出,若想要map自动为我们排序,就得我们提供操作符的实现,否则,比如上面我们去掉cmp_str后,map只是不为我们排序而已,因为我们用的是自定义的数据类型作为键值,map是不认识的。
STL map使用相关推荐
- C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
1. STL 映射类简介 map 和 multimap 是键-值对容器,支持根据键进行查找,区别在于,后者能够存储重复的键,而前者只能存储唯一的键. 为了实现快速查找, STL map 和 multi ...
- STL map 简介
STL map 简介 转载于:http://www.cnblogs.com/TianFang/archive/2006/12/30/607859.html 1.目录 map简介 map的功能 使用ma ...
- 结构体作为STL map的key时需要注意什么? (某公司招聘面试试题)已跪~~~~(_)~~~~
某公司招聘的面试环节, 有这样一个题目:结构体作为STL map的key时需要注意什么? 对于懂STL map的同学来说, 这个题目还是比较easy的, 先看程序: #include <iost ...
- Dictionary,hashtable, stl:map有什么异同?
Dictionary,hashtable, stl:map有什么异同? 相同点:字典和map都是泛型,而hashtable不是泛型. 不同点:三者算法都不相同 Hashtable,看名字能想到,它是采 ...
- C++ STL map的使用
C++ STL map的使用 2009-12-11 作者:tanker1024 来源:tanker1024的blog 1.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的 ...
- 学习STL map, STL set之数据结构基础
STL map和set的使用虽不复杂,但也有一些不易理解的地方,如: 或许有得人能回答出来大概原因,但要彻底明白,还需要了解STL的底层数据结构. C++ STL 之所以得到广泛的赞誉,也被很多人使用 ...
- STL map与Boost unordered_map - 有何不可的日志 - 网易博客
STL map与Boost unordered_map - 有何不可的日志 - 网易博客 STL map与Boost unordered_map 2012-03-30 16:06:26| 分类: c ...
- STL map 内存改变,迭代器失效,_Isnil(_Ptr)和红黑树
STL map 内存改变,迭代器失效,_Isnil(_Ptr)和红黑树 最近在做项目时发现一个crash的问题,当时得到的dmp文件显示crash在一个以map为循环变量的循环中,crash位置在如下 ...
- stl::map之const函数访问
如何在const成员数中访问stl::map呢?例如如下代码: string ConfigFileManager::MapQueryItem(const string& name) const ...
最新文章
- 关于IIS正在使用突然断电后,IIS不能使用解决方案
- jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中
- pytorch 冻结层操作 + 学习率超参数设置
- 测试站点写入文件权限代码下载
- 计算机管理器win8.1,没事折腾?Win8.1文件管理器设置几招
- linux netcat测试udp端口,使用nc(netcat)测试udp协议与端口连通性
- Android 平台下Cordova 调用Activity插件开发
- 【Junos】手动生成Core-dump文件
- 东方第一等幻象骑士团
- 大专计算机应用基础课件,11春大专《计算机应用基础》练习课件.doc
- 自学python买什么教材-从入门到进阶必看,51本Python精品书籍免费送!
- PADS 9.5封装向导 多一个管脚
- 机器数.原码 反码 补码比较理解
- javascript:document.all document.getElementsByName
- Assigning retained object to weak property object will be released after assignment
- asp上传服务器后台图片显示,asp.net上传图片到服务器方法详解
- 如何在MATLAB下载附加功能(下载Min-GW总结)
- Git基本知识和常用命令(IDEA)
- 哪些深度相机有python接口_三种主流深度相机介绍
- DTU网关连接MQTT服务器、MQTT.fx工具测试