使用string.at()或string[]

5
在C++中,使用string[x]来获取特定位置的字符是不好的吗? 大多数人使用string.at(x),但是string[x]有什么不好的原因吗?

3
大多数人使用string.at()函数吗? - Murilo Vasconcelos
真正的问题不是“哪种更好或更差”,而是“它们有何区别以及何时使用每种”。 - Aleksei Zabrodskii
1个回答

10
据我所知,大多数人不会使用string.at()。如果你的代码写得很好且易于理解,应该始终在字符串的边界内工作,因此不需要string.at()提供的运行时边界检查。其他序列容器也是如此,包括.at()方法。

此外,在字符串中很少需要随机访问,绝大多数字符串操作可以使用顺序访问(即使用迭代器而不是索引)来执行。其他序列容器也是如此。 - syam
1
在编写代码时,设计能够正确运行的代码比添加随意的补丁来捕获错误更为重要。 - Pete Becker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接