c+;中“我的删除”函数的范围检查+; >我有一个C++方法,它使用数组,并在数组中移除一定数量的值。该方法删除从起始值到结束值的所有值范围,但不包括结束值无效动态数组::删除(int开始,int结束){
我遇到的唯一问题是范围检查。因此我设置了一种检查方法,以确保开始值和结束值不在错误的位置。但是,每当我测试代码时,它似乎没有捕获范围异常。下面是应该检查异常的代码:c+;中“我的删除”函数的范围检查+; >我有一个C++方法,它使用数组,并在数组中移除一定数量的值。该方法删除从起始值到结束值的所有值范围,但不包括结束值无效动态数组::删除(int开始,int结束){,c++,arrays,range,C++,Arrays,Range,我遇到的唯一问题是范围检查。因此我设置了一种检查方法,以确保开始值和结束值不在错误的位置。但是,每当我测试代码时,它似乎没有捕获范围异常。下面是应该检查异常的代码: if (not (0 <= ((start <= (end < size))))){ throw exception(SUBSCRIPT_RANGE_EXCEPTION); } >(0)。因此,必须分别进行每个比较。(1C++不是这样工作的。单个逻辑比较的结果是布尔值。例如,第一次比较:
if (not (0 <= ((start <= (end < size))))){
throw exception(SUBSCRIPT_RANGE_EXCEPTION);
}
<代码> >(0)<(2)不能使用C++ C++(或大多数语言)中的符号<代码> 1×x<2或代码>。因此,必须分别进行每个比较。(1C++不是这样工作的。单个逻辑比较的结果是布尔值。例如,第一次比较:
end < size
C++不是这样工作的。单个逻辑比较的结果是布尔值。例如,第一次比较:
end < size
应该写下来
if(!(0 <= start && start <= end && end < size)){
throw exception
}
if(!(0应该写入
if(!(0 <= start && start <= end && end < size)){
throw exception
}
if(!(0if)(我不太明白的是这是一个如此初级的新手错误(我的意思是,新手),但是你已经转向了更高级的主题,比如编写类、使用异常处理等…if(我不太明白的是这是一个如此初级的新手错误(我的意思是,新手)但是,你已经进入了更高级的主题,比如写类,使用异常处理等等。C++中有一个<代码>不是< /Cux>运算符,但是没有人使用它,在C++中有一个<代码>不是< /COD>操作符,但是没有人使用太多的括号。(0哎哟,我本来想删除的。对这个问题的moing Duck的评论说得更好,更进一步,应用DeMorgan定理来消除否定。括号太多了。if(!(0哎哟,我本想把它删掉的。Moing Duck对这个问题的评论说得更好,更进一步,他运用了DeMorgan定理来消除否定。