bianjun1075 2016-11-09 13:07 采纳率: 0%
浏览 1673
已结题

c++ find和find_if疑问

请看下面代码:

    unordered_map<string, int> tum;

    tum["Jorden"] = 99;
    tum["Kobe"] = 98;
    tum["MgGrade"] = 90;

    auto kobe_ele = find_if(tum.begin(), tum.end(), [](const pair<string, int>& man){return (man.first == "Kobe");});
    cout << "科比的分数是:" << (*kobe_ele).second << endl;

    auto tman_ele = find(tum.begin(), tum.end(), pair<const string, int>("MgGrade", 90));
    cout << "麦蒂的分数是:" << (*tman_ele).second << endl;

我的问题是,为什么findif使用的是

 const pair<string, int>

而find得使用

 pair<const string, int>

?

  • 写回答

3条回答 默认 最新

  • HannanKan 2016-11-09 14:27
    关注

    一、
    因为问题起于泛型搜索算法find_if(),所以先总结下有关find()和find_if()。 声明:
    InputIterator
    find (InputIterator beg, InputIterator end, const T& value)
    InputIterator
    find_if(InputIterator beg, InputIterator end, UnaryPredicate op)第一种形式返回在搜索域[beg,end)内与value值相等的元素的地址;
    第二种形式返回在搜索域[beg,end)内满足一元谓词函数op(elem)为真的元素的地址。
    1) 以上两种形式在搜索不到匹配元素的情况下均返回end;
    2) 注意op函数调用期间不能够改变自身的状态;
    3) op不能更改传递进来的参数;

    因为两种函数的定义有差别,所以传入的参数有差别;以上内容摘自编程小翁的博客
    链接:http://www.cnblogs.com/wengzilin/archive/2012/10/20/2732252.html
    希望有帮助

    评论

报告相同问题?

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探