我被教导string::at
在学校,但通过探索字符串库我看到string::operator[]
,我之前从未展示过。
我现在正在使用operator[]
并且没有使用过at
因为,但是有什么区别呢?
这是一些示例代码:
std::string foo = "my redundant string has some text";
std::cout << foo[5];
std::cout << foo.at(5);
它们在输出方面本质上是相同的,但是是否存在一些我没有意识到的细微差别?
是的,有一个主要区别:使用.at() https://en.cppreference.com/w/cpp/string/basic_string/at对传递的索引进行范围检查,如果超过字符串末尾则抛出异常operator[] https://en.cppreference.com/w/cpp/string/basic_string/operator_at只是带来未定义的行为在那种情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)