I've such a piece of code in my project:
vector<int> vec;
int begin = 0, end = 0;
for(...) {
for (...) {
if (x) {
vec.push_back(some_value);
end++;
}
}
std::sort(vec.begin() + begin, vec.begin() + end, std::greater<int>());
begin = end;
}
I'm trying to sort the vector vec
piece by piece. But the bool x
may be false. In this case, begin
equals to end
, so it may execute such a code: std::sort(vec.begin() + 3, vec.begin() + 3, std::greater<int>());
Is this safe even if vec.begin() + begin
may not be able to be dereferenced? Or must I add a condition as below:
if (begin < end) {
std::sort(vec.begin() + begin, vec.begin() + end, std::greater<int>());
}
Aucun commentaire:
Enregistrer un commentaire