如果front()返回一个引用并且容器是空的,我得到一个未定义的引用?这是否意味着我需要empty()在每个之前检查front()?
小智 54
您得到未定义的行为 - 您需要在调用front()之前检查容器是否包含使用empty()(检查容器是否为空)的内容.
是的,您可以像 Graham 提到的那样使用“at”,而不是使用 front。
但是, at(0) 仅适用于某些容器 - 向量、双端队列,而不适用于其他容器 - 列表、队列、堆栈。在这些情况下,您必须依靠“空”支票的安全性。