Я пытаюсь найти разность множеств двух векторов, поэтому я сделать что-то вроде этого:ошибка Assertion в станде: вектор, используемый в станде :: 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());
Когда я запускаю это в отладке, я получаю следующее время выполнения неудачи утверждение (в «вектор»):
_SCL_SECURE_VALIDATE_RANGE(_Myptr < ((_Myvec *)(this->_Getmycont()))->_Mylast);
Я использую VS 2008. Любые идеи о том, что может вызвать это?
менее многословным использование back_insert_iterator: зЬй :: set_difference (first_vec.begin(), first_vec.end(), second_vec. begin(), second_vec.end(), std :: back_inserter (difference_vec)); –