如何解决在这种情况下 std::sort 是安全的
我的项目中有这样一段代码:
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;
}
我正在尝试逐个对向量 vec
进行排序。但是布尔值 x
可能是假的。在这种情况下,begin
等于 end
,因此它可能会执行这样的代码:std::sort(vec.begin() + 3,vec.begin() + 3,std::greater<int>());
即使 vec.begin() + begin
可能无法取消引用,这是否安全?或者我必须添加如下条件:
if (begin < end) {
std::sort(vec.begin() + begin,std::greater<int>());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。