对于C ++字符串s,s [s.size()]是否合法且始终等于'\ 0'?

时间:2015-03-06 02:36:13

标签: c++ string

如果s[s.size()]=='\0',那么将其视为某些算法的标记是很方便的。我做了一个测试,它总是等于'\0',但有些书说访问s[s.size()]是非法的。

1 个答案:

答案 0 :(得分:9)

是的,这将提供对C ++ 11标准规定的零值字符的引用:

  

需要:pos <= size()

     

如果*(begin() + pos),则返回pos < size(),否则引用T类型为charT()的对象;参考值不得修改。

其中charT()是一个值构造的字符,其值为零。 T可能是charT的拼写错误。 C ++ 14草案(可能是最终标准)说同样的事情,错字修正。

如果你有一本说不然的书,就把它烧掉或卖给你的敌人。