Je suis en train de trouver la différence de jeu de deux vecteurs, donc je fais quelque chose comme ceci:erreur Assertion dans std: vecteur utilisé dans std :: set_difference
std::vector<sha1_hash> first_vec, second_vec, difference_vec;
// populate first_vec and second_vec ...
std::sort(first_vec.begin(),first_vec.end());
std::sort(second_vec.begin(),second_vec.end());
std::set_difference(first_vec.begin(),first_vec.end(),
second_vec.begin(),second_vec.end(),
difference_vec.begin());
Quand je lance ceci dans le débogage, je reçois l'échec d'assertion d'exécution suivante (en « vecteur »):
_SCL_SECURE_VALIDATE_RANGE(_Myptr < ((_Myvec *)(this->_Getmycont()))->_Mylast);
J'utilise VS 2008. Toutes les idées sur ce qui peut déclencher cela?
utilisation Moins bavard du back_insert_iterator: std :: set_difference (first_vec.begin(), first_vec.end(), second_vec. begin(), second_vec.end(), std :: back_inserter (différence_vec)); –