首页 理论教育 C++STL精解:元素存取访问

C++STL精解:元素存取访问

时间:2023-10-25 理论教育 版权反馈
【摘要】:在通常情况下,string是C++中的字符串。字符串中元素的访问是允许的。对应string类型对象(常量型)最后一个字符的下标是有效的,调用返回字符‘\0’。例2-3通过对上述代码的分析可知,要理解字符串的存取需要多实践、多尝试,并且要牢记基础知识和基本规则。为修改string字符串的内容,下标操作符[]和函数at()均返回字符的“引用”。因为,从意义上讲,字符串被重新赋值后,只是其原来的引用关系已经没有意义了。

C++STL精解:元素存取访问

在通常情况下,string是C++中的字符串。字符串是一种特殊类型的容器,专门用来操作字符序列。字符串中元素的访问是允许的。一般可使用两种方法访问字符串中的单一字符:下标操作符[]和成员函数at()。两者均返回指定的下标位置的字符。第1个字符索引(下标)为0,最后的字符索引为length()-1。需要注意的是,这两种访问方法是有区别的。

提示

①下标操作符[]在使用时不检查索引的有效性。如果下标超出字符的长度范围,会导致未定义行为;对于常量字符串,使用下标操作符时,字符串的最后字符(即‘\0’)是有效的。对应string类型对象(常量型)最后一个字符的下标是有效的,调用返回字符‘\0’。

②函数at()在使用时会检查下标是否有效。如果给定的下标超出字符的长度范围,系统会抛出out_of_range异常。

例2-3

978-7-111-51399-5-Chapter02-21.jpg

通过对上述代码的分析可知,要理解字符串的存取需要多实践、多尝试,并且要牢记基础知识和基本规则。

为修改string字符串的内容,下标操作符[]和函数at()均返回字符的“引用”。但当字符串的内存被重新分配以后,可能会发生执行错误。(www.xing528.com)

例2-4

978-7-111-51399-5-Chapter02-22.jpg

978-7-111-51399-5-Chapter02-23.jpg

例2-4的执行效果如图2-4所示。

978-7-111-51399-5-Chapter02-24.jpg

图2-4 例2-4的执行效果

在例2-4中,使用Visual C++ 2012编译器编译,字符串被重新赋值后,修改其中某位置字符的值,仍然成功。这与前面所述的“可能会发生执行错误”其实并不矛盾。因为,从意义上讲,字符串被重新赋值后,只是其原来的引用关系已经没有意义了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈