map<KeyType, ValueType> mymap;
for (map<KeyType, ValueType>::iterator it = mymap.begin(); it != mymap.end(); it++) {
cout << it->key << "\t" << it->value << "\n"
}
上述示例代码中,key的访问顺序为KeyType默认的由小到大顺序。
当KeyType为string时,则按照string的默认比较函数(ASCII)排序;
当KeyType为int时,则按照int的大小顺序排序;
如何自定义排序函数?
定义如下map容器:
map<string, int> mymap;
key为string类型,mymap的key默认按照string的比较函数排序,如想按照key的数值进行排序,则应该讲如上定义改为:
map<string, int, mycomp> mymap;
并定义mycomp:
struct mycomp {
bool operator()(const string &k1, const string &k2) {
if (atoi(k1.c_str()) < atoi(k2.c_str()))
return true;
else
return false;
}
}
即可完成map的自定义排序函数。
默认排序函数:
map<string, int> mymap;
mymap["11"] = 1;
mymap["1"] = 1;
mymap["2"] = 1;
//遍历mymap,key的输出顺序为:1, 11, 2
自定义排序函数:
map<string, int, mycomp> mymap;
mymap["11"] = 1;
mymap["1"] = 1;
mymap["2"] = 1;
//遍历mymap,key的输出顺序为:1, 2, 11
分享到:
相关推荐
对相同分区的数据,按照key进行排序(默认按照字典排序)、分组。相同key的value放在一个集合中。 (可选)分组后对数据进行归约。 注意:MapReduce中,Mapper可以单独存在,但是Reducer不能存在。
08 map函数filter函数 09 reduce函数 10 map reduce filter总结 11 内置函数part1 第17章 01 课前吹牛 02 zip方法 03 max和min高级使用 04 其他内置函数 05 文件操作的其他模式 第18章 01 上节课复习 02 文件...
技术点22 通过多个reducer 对key 进行排序 4.3 抽样 技术点23 蓄水池抽样(reservoir 抽样) 4.4 本章小结 5 优化HDFS 处理大数据的技术 5.1 处理小文件 技术点24 使用Avro 存储大量小文件 5.2 通过...
10.2.1 序列化和反序列化技术点64 载入日志文件10.2.2 UDF、分区、分桶和压缩技术点65 编写UDF 和压缩分区表10.2.3 数据合并技术点66 优化Hive 合并10.2.4 分组、排序和explain 10.3 本章小结11 ...
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者...
8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种...
8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种...
8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种策略 ...
8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种...
重新排序键盘和部分的列表。 多种颜色选择。 计划功能: 添加和弦表/小节。 每个键盘的可折叠笔记部分。 自定义颜色。 完全控制关键文本。 不同的键盘布局。 该网站的一个HTML文件版本。 更好的样式+更多...
该指令用于导入FreeMarker模板中的所有变量,并将该变量放置在指定的Map对象中,import指令的语法格式如下: 上面的代码将导入/lib/common.ftl模板文件中的所有变量,将这些变量放置在一个名为com的Map对象中. 创建...
8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种策略 ...
9.3. 组件作为Map的索引(Components as Map indices ) 9.4. 组件作为联合标识符(Components as composite identifiers) 9.5. 动态组件 (Dynamic components) 10. 继承映射(Inheritance Mappings) 10.1. 三种...
8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种策略 ...
ads/ 存放广告js文件,可自定义名称, 在当前模版路径的config.xml 里配置好 html/ 存放html模版文件,可自定义名称,在后台配置好。 js/ 存放模版相关js文件 js/home.js 系统内置功能的JS函数库 css/ 存放样式表...
8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 (Dynamic components) 9. 继承映射(Inheritance Mappings) 9.1. 三种...
组件作为Map的索引(Components as Map indices ) 9.4. 组件作为联合标识符(Components as composite identifiers) 9.5. 动态组件 (Dynamic components) 10. 继承映射(Inheritance Mappings) 10.1. 三种...
9.3. 组件作为Map的索引(Components as Map indices ) 9.4. 组件作为联合标识符(Components as composite identifiers) 9.5. 动态组件 (Dynamic components) 10. 继承映射(Inheritance Mappings) 10.1. 三种...