Come trovare un limite inferiore in un vettore ordinato
-
31-10-2019 - |
Domanda
Sono abbastanza nuovo in C ++ e non capisco tutti i concetti della biblioteca STL, quindi abbi pazienza. Ho scritto il seguente frammento di codice (incollato di seguito) per trovare il Lower_Bound in un vettore ordinato. Sebbene questo codice funzioni bene in modalità di rilascio, afferma in modalità debug (VStudio-8). Credo che questo sia perché less_equal<int>
non è un ordinamento strettamente debole.
Dal thread seguente: STL Ordining - Strict Debous ordining
Capisco che un ordinamento debole è imposto dalla STL, ma non sono ancora molto chiaro perché?
Nel mio caso di seguito devo usare less_equal<int>
Dal momento che sto cercando di trovare l'elemento più vicino a un determinato valore in un vettore ordinato.
Lo snippet di codice di seguito è valido? Inoltre, c'è un modo migliore per farlo? Anche qualsiasi approfondimento/riferimenti a ciò che è esattamente debole e l'ordinamento parziale sarebbe utile.
int main() {
vector<int> dest;
for(int i = 0;i <6;i++) {
dest.push_back(i);
}
vector<int>::iterator i =
std::lower_bound(dest.begin(),dest.end(),4,less_equal< int >());
return 1;
}
Nessuna soluzione corretta