提问:map对象 存储输入的家族名字、孩子姓名的问题

ysysbaobei 2008-11-10 04:53:24
题目要求:
定义一个map对象,其元素的键是家族姓氏,而值则是存储该家族孩子名字的vector对象。为这个map容器输入至少六个条目。通过基于家族姓氏的查询检测你的程序,查询应输出该家族所有孩子的名字。
...全文
161 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysysbaobei 2008-11-11
  • 打赏
  • 举报
回复
把题目的map对象扩展一下,使其vector对象存储pair类型的对象,记录每个孩子的名字和生日(page333_3.cpp)

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

int main()
{
map<string, vector<pair<string, string> > > family;
string familyName;

while (cout << "请输入家族姓氏:", cin >> familyName)
{
string firstName, birthday;
while (cout << "请输入此姓氏下孩子的名字和生日:", cin >> firstName >> birthday)
{
family[familyName].push_back(make_pair(firstName, birthday));
}
cin.clear();
}
cin.clear();
cout << "请输入查询家族姓氏:" << endl;
string search;
cin >> search;
map<string, vector<pair<string, string> > >::iterator it = family.find(search);
vector<pair<string, string> >::iterator pter;
if (it != family.end())
{
pter = it->second.begin();
while (pter != it->second.end())
{
cout << "此家族下孩子名字:" << (*pter).first << "\t"
<< "孩子生日:" << (*pter).second << endl;
pter++;
}
}

return 0;
}

ysysbaobei 2008-11-10
  • 打赏
  • 举报
回复
问题解决了,谢谢楼上的
结贴了
ysysbaobei 2008-11-10
  • 打赏
  • 举报
回复
多个容器怎么弄?
一个家族名字对应一个容器,压孩子名字的时候,怎么保证压在相应家族名字那个容器里?
太乙 2008-11-10
  • 打赏
  • 举报
回复


#include<iostream>
#include<map>
#include<vector>
#include<string>
using namespace std;
int main()
{
map<string,vector<string> > mFirstName;
string s;

while(cout<<"请输入姓氏:",cin>>s)
{
cout<<"请输入名字:";
string name;
while(cin>>name)
{
mFirstName[s].push_back(name);
}
cin.clear();
}
cin.clear();
cout<<"请输入查询的姓氏:";
cin>>s;
map<string,vector<string> >::const_iterator it = mFirstName.find(s);
if(it!=mFirstName.end())
{
vector<string>::const_iterator cit = it->second.begin();
while(cit!=it->second.end())
{
cout<<*cit<<endl;
cit++;
}
}
return EXIT_SUCCESS;
}





==================================


请输入姓氏:he
请输入名字:1
2
3
5
^Z
请输入姓氏:zhang
请输入名字:4
5
6
7
^Z
请输入姓氏:li
请输入名字:w
e
q
s
a
^Z
请输入姓氏:^Z
请输入查询的姓氏:li
w
e
q
s
a


Terminated with return code 0
Press any key to continue ...





xhs_lh04 2008-11-10
  • 打赏
  • 举报
回复
嗯对一个键对应 一个关联值,这个关联值就是一个vector向量,里面可以存放家族人的名字
ysysbaobei 2008-11-10
  • 打赏
  • 举报
回复
我试着想办法了,呵呵,自学c++中,学到330页了
思考了,写不出来,才发帖子的,给点思路也行
xhs_lh04 2008-11-10
  • 打赏
  • 举报
回复
嗯好习惯题目先自己动手,有问题再找人
顶一个
ysysbaobei 2008-11-10
  • 打赏
  • 举报
回复
写不出来了,新人,第一次看C++,跟着c++ primer 第四版书在学

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

int main()
{
map<string, vector<string> > f_map;
string family_name;
vector<string> firstname;
vector<string>::iterator ster;
string name;
while (cin >> family_name >> name)
{
firstname.push_back(name);
f_map.insert(make_pair(family_name, firstname));
}

map<string, vector<string> >::iterator it = f_map.begin();
/* for (it = f_map.begin(); it != f_map.end(); ++it)
cout << it->first << " , " << it->second << endl;
*/
return 0;
}

不是一个键对应 一个关联值? 怎么可以一个姓 对应 一个家族的几个孩子的名字
Mougou 2008-11-10
  • 打赏
  • 举报
回复
先自己谢谢,遇到问题再发上来
内容概要:本文针对功率阶跃工况下光储虚拟同步发电机(VSG)并网系统存在的电能质量问题,提出一种自适应治理策略。通过Simulink搭建完整的光储VSG并网系统仿真模型,重点研究在功率突变条件下系统出现的频率波动、电压畸变及谐波增加等动态问题。所提策略结合VSG的惯量与阻尼特性,设计了参数自适应调节机制,实现对系统动态响应过程的有效调控,显著提升了并网电流波形质量与频率稳定性,增强了系统在强扰动工况下的鲁棒性与电能质量治理能力。; 适合人群:具备电力电子、自动控制理论及新能源并网技术基础的科研人员、电气工程及相关专业的硕士/博士研究生,以及从事微电网、储能系统、VSG控制研发的工程技术人员。; 使用场景及目标:①用于分析光储系统在功率阶跃等动态工况下的并网特性与电能质量演变规律;②为VSG关键控制参数(如惯量、阻尼)的自适应整定提供设计思路与仿真验证平台;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的前期控制策略验证。; 阅读建议:建议结合Simulink仿真模型深入理解控制策略的实现逻辑,重点关注VSG惯量阻尼协同调节的自适应机制设计,可通过设置不同功率阶跃幅度、光照强度变化及负载投切等多场景进行仿真测试,全面评估策略的动态性能与适用边界。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧