Question

Je suis assez nouveau en C ++ et je ne comprends pas tous les concepts de la bibliothèque STL, alors n'apportez pas avec moi. J'ai écrit l'extrait de code suivant (collé ci-dessous) pour trouver le Lower_Bound dans un vecteur trié. Bien que ce code fonctionne très bien en mode version, il affirme en mode débogage (VStudio-8). Je crois que c'est parce que less_equal<int> n'est pas un ordre strictement faible.

À partir du fil suivant: Ordonnance STL - STRICT faible commande

Je comprends en quelque sorte qu'une commande faible est imposée par la STL, mais je ne suis toujours pas très clair pourquoi?

Dans mon cas ci-dessous, j'ai besoin d'utiliser less_equal<int> Puisque j'essaie de trouver l'élément le plus proche d'une valeur donnée dans un vecteur trié.

L'extrait de code ci-dessous est-il même valide? De plus, y a-t-il une meilleure façon de le faire? De plus, toutes les idées / références à ce qui est exactement faible et la commande partielle serait 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;

}

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top