Charles_Su 2016-05-01 08:42 采纳率: 21.4%
浏览 2144

用STL的map和算法的find_if实现名表表示和查找功能

#include
#include
#include
#include
using namespace std;
bool older_than_20(int birthdate)
{
return (2016 - birthdate / 10000)>20;
}
int main()
{
maptable_item;//创建一个map类容器,用于存储名表
//创建名表
table_item["Charles"] = 19960207;
table_item["Sam"] = 19970130;
table_item["Michael"] = 19951213;
table_item["Benjamin"] = 19930516;
table_item["Kim"] = 19990315;
table_item["Jacob"] = 19970625;
table_item["Robinson"] = 19960322;
table_item["Lin"] = 19970331;
//输出名表
cout << "名表信息如下:\n";
map::const_iterator it;//创建一个不能修改所指向的元素的迭代器
for (it = table_item.begin(); it != table_item.end(); it++)//遍历容器
cout << it->first << ": " << it->second << endl;//输出元素的关键字和值
map::const_iterator ilocation;//创建一个不能修改所指向的元素的迭代器
ilocation =find_if(table_item.begin(),table_item.end(),older_than_20);//为什么这会报错
if (ilocation == table_item.end())
cout << "没有找到" << endl;
else
{
cout << "年龄大于20岁的人有:" << endl;
cout << ilocation->first << ": " << ilocation->second << endl;
}

system("pause");
return 0;

}

  • 写回答

1条回答 默认 最新

  • oyljerry 2016-05-01 14:16
    关注

    find_if就是实现自己对我过滤条件函数来实现查找

    评论

报告相同问题?

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法