Podczas próby wygenerowania wektora liczb losowych natknę się na błąd std :: bad_alloc. Oto mój kod:bad_alloc podczas inicjowania i wypełniania wektora?
#include "search.h"
#include "gtest/gtest.h"
int _size = 100;
std::vector<int> GetSortedVector(int size){
//init vector
std::vector<int> v(size);
//fill with random numbers
for (std::vector<int>::size_type i=0; i < v.size(); i++)
v.push_back(std::rand()%(2*size));
//return the setup vector
return v;
}
//triggered automatically
TEST(BinarySearch, NonUniqueSorted){
std::vector<int> v = GetSortedVector(_size);//nothing moves farther than this line
}
P.S .: ja używam generate()
teraz, ale nadal jestem ciekawy, dlaczego nie udało się.
W przypadku rezerwacji dla pętli musi być zmodyfikowany, aby sprawdzić przed pojemności nie wielkości. – Kimi
@ Kimim, zapomniałem o tym. –
Nie sądzę, by sprawdzanie "zdolności" byłoby dobrym pomysłem, ponieważ o ile wiem, "rezerwa" jest * dozwolona * do przejęcia (nawet jeśli może praktycznie nie jest to możliwe). Zamiast tego sprawdź po prostu 'size' (argument funkcji). –