📜  C++中的std :: basic_string :: at(1)

📅  最后修改于: 2023-12-03 15:14:02.810000             🧑  作者: Mango

C++中的std::basic_string::at

简介

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++标准库中一个非常有用的函数,可以确保安全地访问字符串中特定位置的元素,避免了直接使用[]操作符可能带来的越界访问等风险。使用该函数时要注意其可能抛出的异常,保证程序的可靠性。