簡體   English   中英

lower_bound() 中的自定義比較器 stl c++ 中的 function

[英]custom comparator in lower_bound() stl function in c++

#include<iostream>
#include<algorithm>
using namespace std;
bool compare(int a,int b){
    cout<<a<<" "<<b<<endl;
    return a<=b;
}

int main()
{    int n;
    cin>>n;
    int a[n]={1,2,5,10,50,100,200,500,2000};
    int money=100;
    int it =lower_bound(a,a+n,money,compare)-a;
    cout<<a[it];
    return 0;
}

在這段代碼中,我為lower_bound()做了一個自定義比較器,所以它應該最終是 output 100 (如在 lst compare 100 <=100 為真)。 但它給出了下一個索引(200)作為 output ......為什么?

沒錯,正如亞達夫所說。 您還可以查看有關比較要求的 cppreference:

comp - 如果第一個參數小於(即排在前面)第二個參數,則返回 true 的二進制謂詞。

https://en.cppreference.com/w/cpp/algorithm/lower_bound

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM