问题描述
我的项目中有这样一段代码:
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 (将#修改为@)