学习STL@map篇

原创 2016年08月31日 16:15:21

描述

数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和

 

函数说明:

public int mergeRecord(List oriList, List rstList)

数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和。


 @param oriList 原始表记录。 以List方式存放,TableRecord定义见TableRecord.java,

                调用者无需对leRecord.java做任何修改
 @param rstList 合并后的表记录 , 以List方式存放
 @return  返回合并后表的个数

 

 

知识点
运行时间限制 10M
内存限制 128
输入

先输入键值对的个数
然后输入成对的index和value值,以换行符隔开

输出

输出合并后的键值对(多行)

样例输入 4 0 1 0 2 1 2 3 4
样例输出 0 3 1 2 3 4
华为oj系统初级题:合并表记录

自己用的算法超时了,看到评论区有贴map来做,这里引用一下,学习一下map的用法。

#include <iostream>  
#include <map> 
using namespace std;

int main()
{
int n;
map<int, int>m;
cin >> n;
for (int i = 0;i < n;i++)
{
int index, value;
cin >> index >> value;
if (m.find(index) == m.end())
m[index] = value;
else
m[index] += value;
}
map<int, int>::iterator beg = m.begin();
for (;beg != m.end();++beg)
cout << beg->first << endl << beg->second << endl; 
return 0;
}


1.首先看一下头文件,要包含map头文件

2.定义变量的方法:map<int,int>m;

map的基本构造函数有以下几种:

map<string,int>mapstring;      map<int,string>mapint;      map<string,char>mapstring;

map<char,string>mapchar;      map<char,int>mapchar;    map<int,int>mapint;

3.map的key是自动升序的,不能用sort函数,以下是map的基本操作函数:

begin() 返回map头部指针;clear() 删除所有元素; count() 返回指定元素出现的次数

erase() 删除一个元素;  insert()  插入元素;  find()查找一个元素

已经在VS上编译过的来看,insert函数参数可以是pair<int,int>(a,b);也可以是map<int,int>::value_type(a,b);

不过更常见的用法是m[a]=b;

find的用法:参数是第一个数,就是key.  m.find(a)返回的是key为a的元素的指针(迭代器)。

若计li=m.find(a);那么li->first就是a,li->second就是b (m中没有重复键入key相同的元素的情况下)。

4.本例中涉及到的map的用法还比较少,还剩一个定义属于map的元素:

map<int,int>::iterator 

鸟哥的Linux私房菜 基础学习篇(第三版)

第零章 计算器概论 1 计算机:辅助人脑的好工具 接收用户指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或存储成有用的信息。 1.1 计算器的五大单元 输入单元,CPU控制单元,CPU算...
  • niuzhihuan
  • niuzhihuan
  • 2015年08月03日 20:17
  • 1013

《鸟哥的linux私房菜:基础学习篇》第3版 - 核心笔记(全)

一、什么是 Linux 呢?! • Unix 与 Linux 的历史     o Multics 系统:由 Bell(贝尔实验室)、MIT(麻省理工学院)与 GE(美国通     用电器)合作开发的...
  • sinat_36184075
  • sinat_36184075
  • 2017年05月19日 23:50
  • 613

java并发编程学习总结(基础篇)

一、基础概念总结 1.多线程程序可能存在的风险: (1)安全性问题:多线程程序在没有充足同步的情况下,在特定的线程执行时序下,多个线程同时操作一块共享资源时,可能引发错误。 (2)活跃性问题...
  • lantian0802
  • lantian0802
  • 2014年02月16日 14:52
  • 1807

ASP.NET网站设计学习篇一

最近学习了HTML、CSS、JavaScript,进而结合已经拥有的C#基础,学习ASP.NET,学起来很快,加油! 下面是网站的部分效果图: 主要代码如下: ...
  • chongshangyunxiao321
  • chongshangyunxiao321
  • 2016年04月17日 20:15
  • 666

Spark基础知识学习分享

一、Spark基础知识梳理 1.Spark是什么? Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发。Spark基于map reduce 算法模式实现的分布式计算,...
  • lantian0802
  • lantian0802
  • 2014年03月29日 18:25
  • 4152

JPA 学习篇(一)JPA简介

【JPA 简介】JPA(Java Persistence API)         JPA 不是一个ORM 的框架, 而是一个ORM 的规范,只指定了一些接口, 具体的实现由应用服务器厂商来提供实现。...
  • zgf19930504
  • zgf19930504
  • 2015年11月04日 10:10
  • 235

Go语言基础学习三-简单的代码分析(并发)

Go语言基础学习三-简单的代码分析(并发)     有关于go语言基础学习的第二篇和第三篇都是直接通过分析代码来对go语言的一些特点进行认识,具体的针对性的一些go语言特性方面的细节会在之后的每一章...
  • qq_21898173
  • qq_21898173
  • 2017年03月21日 11:27
  • 299

C++学习日志第四篇

1.3 多态 定义:指属于不同类的对象对同一消息做出的不同的响应,具体表现是函数调用的“一种接口,多种方法”特性。从实现的角度可分为:编译时多态(常用且易学)和运行时多态(常用但不易学)。编译时多态...
  • irisalwayshere
  • irisalwayshere
  • 2016年03月30日 12:38
  • 218

【ZT】从安装到做项目一步步教你ROS学习入门

http://tech.sina.com.cn/roll/2017-03-27/doc-ifycsukm3845817.shtml http://mt.sohu.com/20170327/n4850...
  • wb4916
  • wb4916
  • 2017年04月02日 20:55
  • 548

电子书-鸟哥的Linux私房菜--基础学习篇(第3版).pdf

http://pan.baidu.com/s/1pJmGh5L 提取密码:6u6u
  • mythling
  • mythling
  • 2014年07月27日 21:14
  • 394
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习STL@map篇
举报原因:
原因补充:

(最多只允许输入30个字)