18.4.4 元素追加与相加

    提到追加与相加,首先想到的是重载的+=操作符,+=操作符能将另一个string字符串、C风格字符串,甚至是单个字符添加到string字符串后。

    string类还定义了更灵活的append函数将另一个string字符串、C风格字符串,甚至是单个字符添加到string字符串后。此外,通过指定初始位置和追加字符数,以及指定区间的方法,可以将另一个string字符串或C风格字符串的一部分追加到字符串中,append函数的各个重载版本定义如下所述。

    (1)string&append(const char*s);将C风格字符串s追加到string后面。

    (2)string&append(const char*s,size_type n);将C风格字符串s中从位置n开始的字符追加到string后面。

    (3)string&append(const string&str);将另一个string对象str追加到该string后面。

    (4)string&append(const string&str,size_type pos,size_type n)将另一个string对象str的一部分追加到该string后面。

    (5)string&append(Iterator First,Iterator Last);将[First,Last)之间的字符追加到该string后面。

    (6)string&append(size_type n,char c);将n个字符c追加到该string后面。

    注意

    当追加得到的字符串长度大于最大字符串长度时(取string:npos和可用内存字节中较小的一个),将抛出length_error异常。

    此外,string类重载了+运算符,以便拼接字符串,该运算符不修改字符串,而是创建一个新的字符串用于存储结果,+运算符是以友元形式重载的,能用于string对象和string对象、string对象和字符数组、字符数组和string对象、字符和string对象以及string对象和字符的相加。