C++ 使用名称作为键,使用生日作为值的字典实现
对于本作业,您将使用字典来跟踪您的朋友和亲戚的姓名和生日。您应该能够执行以下操作:C++ 使用名称作为键,使用生日作为值的字典实现,c++,C++,对于本作业,您将使用字典来跟踪您的朋友和亲戚的姓名和生日。您应该能够执行以下操作: 添加条目 删除条目 在字典里查找生日的名字 显示字典中每个条目的名称和生日 在字典里列出每个在某个月出生的人 搜索键是名称,您可以假定名称是唯一的 对于这个作业,除了同一个生日,我已经完成了大部分课程。这就是我计划为我的同班同学做的 void Dict::sameBirthday() { for (int i = 0; i < itemcount; i++) { if(item[i].g
- 添加条目
- 删除条目
- 在字典里查找生日的名字
- 显示字典中每个条目的名称和生日
- 在字典里列出每个在某个月出生的人
搜索键是名称,您可以假定名称是唯一的
对于这个作业,除了同一个生日,我已经完成了大部分课程。这就是我计划为我的同班同学做的
void Dict::sameBirthday() { for (int i = 0; i < itemcount; i++) { if(item[i].getDate() == item[i+1].getDate()) { int index = i; cout << item[index].getName() << "\n"; } } }
void Dict::sameBirthday() { 对于(int i=0;i
coutYes!!多亏了paddy。我犯了一个错误,我只是比较值,看看数组中哪一个具有相同的值,而没有给出要查找的值。因此,我可以使用输入值列出具有相同值的键。再次感谢paddy void Dict::sameMonth(string month) { for (int i = 0; i < itemcount; i++) { if (month == item[i].getMonth()) { cout << item[i].getName()<< " - "; } } cout << endl; }
void Dict::sameMonth(字符串月) { 对于(int i=0;i
不能“感觉像”这意味着您没有实际测试过它。如果是这样,请先这样做。一旦您测试了它,您应该能够解释问题所在。您可以创建一个反向映射,例如
。然后访问具有相同生日的所有人的列表非常简单。您当前编写的代码将l仅输出存储在数据结构中相邻元素中的一对名称中的第一个。如果存储按出生日期排序的记录,这可能接近解决方案。但这似乎不太可能。您还有一种边缘情况,即访问数据结构末尾的一个元素,很可能是未定义的行为我们的测试不是很清楚,所以我只是做了一个计数器,看看我能得到多少,它只给了我1个增量。我想得到3个,因为我已经声明3个人的生日相同。std::map birth\u to_name\u map