我string::at
在学校接受教育,但是通过探索我看到的字符串库string::operator[]
,我之前从未展示过.
我现在正在使用operator[]
并且从未使用at
过,但有什么区别?以下是一些示例代码:
std::string foo = "my redundant string has some text";
std::cout << foo[5];
std::cout << foo.at(5);
Run Code Online (Sandbox Code Playgroud)
它们在输出方面基本相同,但是有一些我不知道的细微差别吗?
Kar*_*k T 12
at
进行边界检查,std::out_of_range
无效访问时会抛出类型异常.
operator[]
不检查边界,因此如果您尝试访问超出字符串的边界可能会很危险.它比它快一点at
.