C++ 的 container vector
, deque
, ...at(index)
除了operator[index]
访问容器元素外,还提供访问器功能。
此成员函数和成员运算符函数 operator[] 之间的区别在于,如果请求的位置超出范围,则 deque::at 会通过抛出 out_of_range 异常来发出信号。
我从来没有在我的代码中需要这个函数,因为在我的 C++ 代码中访问可能超出范围的元素是没有意义的。始终编写代码以访问正确的索引(或在索引无法匹配的情况下产生有意义的错误/异常。)
at()
我会对生产代码中使用的真实世界示例(可能来自一些开源项目,因为这会添加一些上下文)感兴趣。
也许有人可以举一个使用at()
有意义的算法问题的例子。
注意:我最近在一些单元测试代码中使用了它,其中添加索引检查代码被认为不值得麻烦,并且抛出的 out_of_range 异常被at()
认为是足够的 info+context 以防测试中断。
注意:关于ildjarn 的回答- 我不想就此展开讨论或评论。我对“积极”的发现很感兴趣,这是使用它的具体例子。谢谢你。