假设我们创建一个列表类,该类具有一个功能,该功能消除了位置a至位置b的元素。
该类应该由其他程序员使用(例如std::list)。
例:
列出值:{0,1,2,3,4,5,6},我们用(begin = 2,end = 5)调用此函数。
这会将列表更改为{0,1,6}
如果用户使用end> size of list来调用该函数,则最好重新分配end = size并删除直到最后一个,或者启动一个异常,例如out_of_range?
最佳答案
这是关于编程标准的好问题。如果有人使用end
> size
调用您的方法,则从技术上讲,他们违反了您的函数先决条件。程序员可能会调用您的函数,以为它做了其他事情,例如消除了它们给出的值之间的所有列表值。如果您的函数没有引发异常,那么他们将不会知道任何错误,直到以后出现逻辑错误。如果给定不正确的参数,则最佳实践是引发异常,解释它们的错误之处。这给使用您的功能的人带来了更大的挑战,但后来为他们节省了更多的麻烦。
关于algorithm - 我应该启动错误还是更正值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61148961/