C++ code:

#include <iostream>
#include <fstream>
#include <map>
#include <string>
#include <algorithm> using namespace std; int main()
{
multimap<int,string> agemap;//以年龄为键,以个人信息为值,年龄必有重复,定义成multimap可自动排序
ifstream infile("persons.txt");//为ifstream对象提供文件名作为初始化式,就相当于打开了特定的文件,不用再调用open函数
if(!infile)
{
cout<<"Open file error!"<<endl;
} string textline;
int age;
string::reverse_iterator rcomma;//string类型反向迭代器,用于指向反向搜索找到的第一个逗号
while(getline(infile,textline))//getline函数将istream参数作为返回值,可用作读取结束判断条件
{
rcomma=find(textline.rbegin(),textline.rend(),',');//rcomma指向从后往前的最后一个逗号
age=atoi(string(rcomma.base(),textline.end()).c_str());//string转int,rcomma.base()表示将反向迭代器rcomma转换为从前往后移动的普通迭代器
agemap.insert(make_pair(age,textline));//将年龄和完整信息插入multimap
} multimap<int,string>::reverse_iterator map_it=agemap.rbegin();//从后往前输出 int N=;//假定要输出年龄最大的前10个
while(map_it!=agemap.rend() && N-- >)//按年龄降序输出元素
{
cout<<map_it->second<<endl;
++map_it;
} return ;
}

persons.txt

Ted Elliott,9876541198611121512,27
Peter Twist,52478198901243122,24
Terry Rossio,456871198804096012,25
George Marshall Ruge,510402198904070919,24
Brian Morris,51068119830104411X,30
Christopher Masterson,432502198908193032,24
Mel Colm-Cille Gerard Gibson,431102198911046233,24
Tim,511621198603095910,27
gdfgdf,371326198806230018,25
gdfg,41150219871015966X,26
gdfdf,620422198801191911,25
gdfgfd,411325198710241333,26
gdff,140522198804301013,25
gdfg,230204198801180714,25
dfgfd,510704198706063514,26
gfdgdf,610424198906172881,24
gdfgfd,513922198511210031,28
uykuy,320911198901061214,24
jghjj,51302919890906659X,24
jhhjh,612731198809280436,25
jhgjhg,650103198902056022,24
jghg,51070319790525972X,34
jghjh,510681198810130315,25
hgjhg,510304198706071010,26
jghjhg,320382198708300431,26
jhgjg,340321198903154709,24

读取文件并找出年龄最大的N个人-兰亭集市笔试题的更多相关文章

  1. R中读取文件,找不到路径问题 No such file or directory

      R中读取文件,找不到路径问题 No such file or directory 近日,读取文件时.出现例如以下问题 > passenger = read.csv('internationa ...

  2. BD面试题1-两个大文件中找出公共记录[转载]

    转自:https://blog.csdn.net/tiankong_/article/details/77234726#commentBox 1.题目 给定a.b两个文件,各存放50亿个url,每个u ...

  3. 通过 File API 使用 JavaScript 读取文件

    原文地址:http://www.html5rocks.com/zh/tutorials/file/dndfiles/ 简介 HTML5 终于为我们提供了一种通过 File API 规范与本地文件交互的 ...

  4. Python每日一练(2):找出html中的所有链接(Xpath、正则两个版本)

    要在hrml文件中找出特定的内容,首先需要观察该内容是什么东西,在什么位置,这样才能找出来. 假设html的文件名称是:"1.html".href属性全都在a标签里. 正则版: # ...

  5. 如何快速定位找出SEGV内存错误的程序Bug

    通过查看php日志/usr/local/php/var/log/php-fpm.log,有如下警告信息: [16-Mar-2015 16:03:09] WARNING: [pool www] chil ...

  6. 【转】文件中有10G个整数,乱序排列,要求找出中位数

    题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). ...

  7. 如何快速找出Linux中的重复文件

    md5sum | sort | uniq -w32 --all-repeated=separate [1]find -not -empty -type f -printf “%s\n” :find是查 ...

  8. shell在一个大文件找出想要的一段字符串操作技巧

    昨天端午,晚上的时候接了一个电话,我朋友的公司,数据库被两个工作没多久的phper给弄坏了,具体就是把一个字段值,给全表弄成一个了名字了,当然这个是可以配置了禁止全表更新数据库,这下可急坏了,找到我, ...

  9. Linux/Unix 怎样找出并删除某一时间点的文件(转)

    在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文 ...

随机推荐

  1. 剪花布条---hdu2087(kmp模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087 kmp模板题: #include <cstdio> #include <cst ...

  2. Elven Postman---hdu5444(二叉树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5444  有一个序列,由这个序列可以画出一颗二叉树(每个节点的左边(W)都比它大,右边(E)都比它小), ...

  3. nsq里面WaitGroups两种实用的用法

    看过好几遍了,觉得挺实用的,记录备忘一下. 1.开启很多个 goroutine 之后,等待执行完毕 type WaitGroupWrapper struct { sync.WaitGroup } fu ...

  4. python学习笔记(二十六)经典类和新式类的区别

    首先了解一下什么是经典类,什么是新式类 class Person: #经典类 pass class Person2(object): #新式类 pass #类名首字母都大写 #在python3里面经典 ...

  5. Hibernate错误:Could not bind factory to JNDI

    使用hibernate时,将hibernate.cfg.xml中 <session-factory name="SessionFactory">的那么属性去掉即可.因为 ...

  6. py-统计一个矩阵中每一列的非0数的个数

    1.文件类型类似于这样: 不过数据量比这个要更大一点. 2.对应上述数据的运行结果: import matplotlib.pyplot as plt with open('test.txt') as ...

  7. Redis操作手册

    一.Redis简介 1.1 NoSQL NoSQL,泛指非关系型数据库,NoSQL数据库分为四大类:键值存储数据库(Redis,Voldemort,Oracle BDB).列存储数据库(HBase,R ...

  8. Java栈之顺序栈存储结构实现

    一.栈的基本定义 栈是一种数据结构,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入.删除操作的特殊线性表,通常就是在线性表的尾端进行插入.删除操作. 二.顺序栈的实 ...

  9. Zen cart 根据数量打折插件

    Quantity Discounts 可以根据顾客购买多少来打折,很不错. 假如顾客买了3个以上的产品,就给他10%折扣,设置如下: Turn On Quantity Discount 1. In t ...

  10. 关于cgi、FastCGI、php-fpm、php-cgi(复制)

    首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者. web server(比如说nginx)只是内容的分发者.比如,如果请求/index.h ...