数据结构中的断言与容器详解
1. 断言的基本概念
在程序的每个点上,通常存在一些对计算状态的约束,这些约束对于程序的正确性至关重要。例如,如果一个变量用于记录文件的更改次数,那么这个变量的值永远不应该是负数。了解这些约束不仅有助于人类读者理解程序,而且如果程序在执行过程中检查这些约束,就可以在错误发生时尽快发现它们。因此,将这些关于程序状态的约束记录在断言中是非常明智的做法。
断言是指在程序的指定点上必须为真的语句。
2. 断言的类型
有三种断言特别有用:
- 前置条件(Preconditions) :前置条件是指在操作开始执行时必须为真的断言。例如,平方根操作不能接受负数作为参数,因此该操作的前置条件是其参数必须为非负数。前置条件通常用于指定对参数的限制,但也可以指定其他条件,如文件已创建或设备已初始化。有些操作可能没有前置条件,这意味着它们可以在任何情况下执行。
- 后置条件(Post conditions) :后置条件是指在操作完成执行时必须为真的断言。例如,平方根操作的后置条件是其结果的平方与参数的差值在一个很小的范围内。后置条件通常用于指定参数和结果之间的关系,或者对结果的限制。有时,它们还可以指定参数是否发生变化,以及如何变化。此外,后置条件还可以指定当前置条件被违反时会发生什么(例如,抛出异常)。
- 类不变式(Class invariants) :类不变式是指对于类的任何实例,在调用其导出操作之前和之后都必须为真的断言。通常,类不变式用于指定类的属性的性质以及属性之间的关系。例如,假设一个
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



