在C++中,std::stoll
函数用于将字符串转换为长整型数值。当使用std::stoll
进行转换时,如果字符串表示的数值超出了长整型的范围,即溢出了,std::out_of_range
异常会被抛出。
例如,如果尝试将一个超出long long
的范围的字符串转换为长整型数值,会抛出std::out_of_range
异常:
#include <iostream>
#include <string>
int main() {
std::string str = "12345678901234567890"; // 超出long long范围
try {
long long num = std::stoll(str);
std::cout << "Number: " << num << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
在上面的代码中,由于字符串表示的数值超出了long long
的范围,std::out_of_range
异常会被捕获并输出错误信息。因此,要注意在使用std::stoll
进行字符串转换时,确保输入的字符串在目标数据类型的范围内。