我必须从包含字符串和整数的文本文件中读取数据,并编写一个查找最老的人并显示其名称的程序。 这是在我的文本文件从文本文件(C++)中打印字符串和整数
Jefferson 17 Bill 24 Mary 19 Jack 22 Matthew 19 Claudia 23 Judy 18我无法打印的最古老的人的名字
一旦我发现的最古老的年龄是什么。任何人都可以通过它走过我吗?
我必须从包含字符串和整数的文本文件中读取数据,并编写一个查找最老的人并显示其名称的程序。 这是在我的文本文件从文本文件(C++)中打印字符串和整数
Jefferson 17 Bill 24 Mary 19 Jack 22 Matthew 19 Claudia 23 Judy 18我无法打印的最古老的人的名字
一旦我发现的最古老的年龄是什么。任何人都可以通过它走过我吗?
您可以将它们简单地存储到vector<pair<string, int>>
中,以将名称与年龄相关联。一旦你找到最古老的年龄,你会发现它的名字。
如果您将它们存储在两个单独的vector
s中,请确保您同步跟踪它们。
更新时间:为您的代码(如你在下面评论),你应该改变
for(int i=1; i<=7;++i)
{
if(age[i]>max)
max=age[i];
name[i]=max;
...
}
到
string name_oldest; // to store the oldest name
for(int i=1; i<=7;++i)
{
if(age[i]>max)
{
max=age[i];
name_oldest = name[i]; // update here
}
...
}
这是我到目前为止 的#include
@ user3326689您可以分享您的代码,让我们更好地了解造成的错误。 – herohuyongtao
我改变了我的代码到,但没有被使用命名空间std打印 的#include
除非这是一个作业,在那里你必须自己实现算法,它实际上很容易解决一切使用standard C++ library:
首先,您使用std::getline
将每行读入std::string
实例。
使用此字符串和std::istringstream
,然后可以使用常规输入运算符>>
解析出不同的字段。
您可以将数据存储在std::map
中,其中年龄作为关键字,名称作为数据。由于std::map
按键排序,地图中的最后一项是“最老”的人。
如果可以有多个年龄相同的人,则需要使用std::multimap
代替,并准备打印同一年龄段的多个人。
好吧,我会尝试,谢谢! – user3326689
你有什么代码? – rerun
你好,欢迎来到stackoverflow.com。请花些时间阅读[帮助页面](http://stackoverflow.com/help),尤其是名为[“我可以问些什么话题?”]的章节(http://stackoverflow.com/help/)讨论话题)和[“我应该避免问什么类型的问题?”](http://stackoverflow.com/help/dont-ask)。更重要的是,请阅读[Stack Overflow问题清单](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。您可能还想了解[SSCCE](http://sscce.org/)是什么。 –
现在仍然是你自己做了什么? 主持人需要关注这类问题。 – 2014-02-19 06:50:37