string类定义的关系操作符实际上是比较每个string对象的字符。
string对象比较操作是区分大小写的,即同一个字符的大小写形式被认为是两个不同的字符。
在大多数计算机上,大写的字母位于小写字母前:任何一个大写字母都小于任意的小写字母。
两个string对象相等是指它们的长度相同,且含有相同的字符。
关系操作符比较两个string对象时采用了和(大小写敏感的)字典排序相同的策略:
1.如果两个string对象长度不同,且短的string对象与长的dtring对象的前面部分相匹配,则短的string对象小于长的string对象。
2.如果两个string对象的字符不同,则比较第一个不匹配的字符。
大多数库类型支持赋值操作,对于string对象来说,可以把一个string对象赋值给另一个string对象,赋值操作后,st1就包含了st2串所有字符的一个副本。
大多数string库类型的赋值等操作的实现都会遇到一些效率上的问题,但从概念上讲,赋值操作确实需要做一些工作:
它必须先把st1占用的相关内存释放掉,然后再分配给st1足够存放st2副本的内存空间,最后把st2中的所有字符复制到新分配的内存空间
两个或多个string对象可以通过使用加操作符+或复合赋值操作符+=(把s2直接追加到s1的末尾 s1 +=s2) 连接起来
当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的。 string s4 = "hello" + " , " ; //此定义错