如何解决如何在C ++ 11中使用lamda表达式过滤std :: map键
在std :: map
std::map<std::string,std::string> mapval = {{"2020-09-24","1024"},{"2020-09-25",{"2020-09-26",{"2020-09-27",{"2020-09-28","1024"}};
我是否只能从给定的日期范围内检索密钥,例如是否要从当前日期开始三天获取数据,所以我将仅获取“ 2020-09-24”,“ 2020-09-25”和{” 2020-09-26”,“ 1024”}。我想要一个通用的,我有开始日期和结束日期,我将过滤该范围内的值,并将其他值擦除。 有可能吗?
解决方法
我不确定我是否完全理解这个问题,但是也许会很接近:
mapval = std::map<std::string,std::string>(
mapval.lower_bound(start_date),mapval.upper_bound(end_date));
这将保留mapval
的键位于start_date
和end_date
(包括)之间的元素,并删除所有其他元素。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。