微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将迭代器转换为“lower_bound”的整数时得到错误的输出

如何解决将迭代器转换为“lower_bound”的整数时得到错误的输出

我正在尝试使用这 2 种方法将迭代器转换为索引(int 值),但是当我使用“lower_bound”方法找到迭代器时,我不知道为什么会得到错误输出,这对于“查找”方法
在下面的代码片段中,当我对 x=4 使用“find”方法时,我得到 7(这是正确的),但是对于 x=4 上的“lower_bound”方法,我得到 2

    vector<int> v = {5,3,7,1,2,9,8,4,6,0};
    int x = 4;
    auto it = lower_bound(v.begin(),v.end(),x);
    int index = distance(v.begin(),it);
    int i = it - v.begin();
    cout << index << " " << i;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。