学习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 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

STL学习——set/map/multiset/mulitmap篇

STL学习——set/map/multiset/mulitmap篇set 简介set特性:所有元素都会根据元素的键值自动被排序。set的元素不想map那么,可以同时拥有实值(value)和键值(key...

C++ STL关联容器 set和map学习笔记

C++ STL关联容器 set和map学习笔记 STL提供了4种关联容器:set、multiset、map和multimap。前两种在头文件#include,后两种在头文件#include中定义的。 ...

STL - map学习总结

前言:map是STL的一种关联式容器,他提供一对一的Hash映射,因此使用中也常常可pair数据结构结合使用,map内部自建一棵红黑树,这棵树具有对数据自动排序的功能,所以在map内部所有的数据都是有...

关注C++细节——STL中map学习小结

转 http://blog.csdn.net/iaccepted/article/details/8554303 map常用的方法主要有:insert,erease,size,count...

stl源码剖析 详细学习笔记 set map

// //  set map.cpp //  笔记 // //  Created by fam on 15/3/23. // // /...

STL学习笔记——map容器

映射容器map是一种关联容器,表示的是对偶(键,值)的序列。它支持唯一Key类型的键值,并提供对另一个基于键的类型T的快速检索。map还提供双向迭代器。映射容器map在标准C++中,对应于map类,被...

map--C++ STL 学习

map–C++ STL 学习  Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力。   说下map内...

今日学习札记——STL常用容器:vector、list、set和multiset、map和multimap(11.17)

1.vector,头文件#include (1) 声明方法:vector 变量; 范例: int main() {     vector IntArray(3); IntArray[0]...

STL学习-map

简介 map是键-值对的集合。map为关联容器,可以通过键作为下标来获取一个值,正如内置数组类型一样。map的底层实现基于RB-Tree。 特性 map是键-值的集合。 map根据键值自动排序。 ...

STL学习(六)--map/multimap用法详解

两者的内部结构都是用的是平衡二叉树,区别在于multimap允许重复元素而map不允许。 map和multimap**根据元素的key**自动对元素进行排序,要修改元素的key必须先删除拥有该key...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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