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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top