【发布时间】:2011-04-13 07:19:24
【问题描述】:
C++的容器vector,deque,...除了operator[index]之外还提供at(index)访问器函数来访问容器元素。
我的代码中从来没有,也从来不需要这个函数,因为在我的 C++ 代码中访问可能超出范围的元素是没有意义的。始终编写代码以访问正确的索引(或在索引无法匹配的情况下产生有意义的错误/异常。)
我会对在生产代码中使用at() 的真实示例(可能来自一些开源项目,因为这会添加一些上下文)感兴趣。
也许有人可以举例说明使用at() 有意义的算法问题。
注意:我最近在一些单元测试代码中使用了它,在这些代码中添加索引检查代码被认为不值得麻烦,并且考虑了at() 抛出的 out_of_range 异常足够的信息+上下文以防测试中断。
注意:关于this answer by ildjarn - 我确实不想就此展开讨论或评论战。我对“积极”的发现很感兴趣,即 具体的例子已经被使用过。谢谢。
【问题讨论】:
标签: c++ collections standard-library