📅  最后修改于: 2023-12-03 15:14:02.810000             🧑  作者: Mango
std::basic_string::at
是C++标准库中std::basic_string
类提供的成员函数之一,用于访问字符串中指定位置处的元素。
该函数要求给定的位置必须在字符串的范围内,否则会抛出std::out_of_range
异常。与[]
操作符不同,它提供了范围检查,使得程序更加安全可靠。
std::basic_string::at
的语法如下:
reference at( size_type pos );
const_reference at( size_type pos ) const;
其中:
pos
表示要访问的元素在字符串中的位置。reference
表示返回的元素的引用类型,可用于修改字符串中的元素。const_reference
表示返回的元素的常量引用类型,不可用于修改字符串中的元素。std::basic_string::at
的返回值为指定位置处元素的引用或常量引用,取决于函数版本。
以下是使用std::basic_string::at
访问字符串中指定位置处元素的示例代码:
#include <iostream>
#include <string>
int main() {
std::string str = "hello, world!";
try {
char c = str.at(5); // 获取位置为5的字符
std::cout << "The character at position 5 is: " << c << std::endl;
str.at(20) = '?'; // 尝试修改位置为20的字符,抛出std::out_of_range异常
}
catch (const std::out_of_range& e) {
std::cerr << "Exception caught: " << e.what() << std::endl;
}
return 0;
}
输出为:
The character at position 5 is: ,
Exception caught: basic_string::at: __n (which is 20) >= this->size() (which is 13)
std::basic_string::at
是C++标准库中一个非常有用的函数,可以确保安全地访问字符串中特定位置的元素,避免了直接使用[]
操作符可能带来的越界访问等风险。使用该函数时要注意其可能抛出的异常,保证程序的可靠性。