1、c++中string提供两种索引个别字符的方法:c风格的数组索引语言“[]”;at()成员函数方法。如果不出意外事件,在c++中这两种索引机制产生的结果是相同的。
两者最大的不同是:如果引用一个超过边界的数组元素,at()函数会友好的抛出一个异常,而普通的下标语法让程序员自行决策。
at成员函数抛出一个out_of_range类对象,它最终派生于std::exception。程序中可在一个异常处理器中捕获该对象,并采取补救措施。
string s("1234");
try{s.at(5);
}catch(exception& e){
cerr<<e.what()<<endl;
}
//捕获异常,并输出错误原因,结果如下;
string s("1234");
// try{s.at(5);
// }catch(exception& e){
// cerr<<e.what()<<endl;
// }
//如果不捕获异常,则程序自行中断,如下;