rand() % range.size() + 1
can go outside the bounds of the vector use
rand() % range.size()
use this piece of code instead :
std::vector<int>range;
for(int i = 1; i <= 35; ++i)
{
range.push_back(i);
}
srand(time(0)) ;
for(int i = 0; i < 7; i++){
int index = rand() % range.size() ;
int number = range[index];
row[i] = number;
range.erase(range.begin() + index);
std::cout << row[i] << endl;
}