在C ++中获取字符串的第一个字符是否有最佳实践?

时间:2016-04-06 02:32:49

标签: c++ arrays string

多年来,我一直使用stringname[0]获取string的第一个字符,甚至没有考虑过它。但是,我最近想知道是否对阵列进行粗暴访问确实是一种很好的做法。这似乎是一个微不足道的问题,但并不是因为它看起来与STL容器的内存/访问管理密切相关。

我可以想到stringname.at(0)(不是很有说服力)但是迭代器可能有更好的选择。最重要的是,如果字符串为空,理想的方法不会导致错误。

任何广泛接受的良好做法?

1 个答案:

答案 0 :(得分:9)

如果s为空字符串,则s[0]会返回'\0',而s.at(0)会返回std::out_of_range

行为的差异远远大于绩效差异。