std::basic_string::operator+=
来自cppreference.com
< cpp | string | basic string
basic_string& operator+=( const basic_string& str ); |
(1) | |
basic_string& operator+=( CharT ch ); |
(2) | |
basic_string& operator+=( const CharT* s ); |
(3) | |
basic_string& operator+=( std::initializer_list<CharT> ilist ); |
(4) | (C++11 起) |
basic_string& operator+=( std::basic_string_view<CharT, Traits> sv); |
(5) | (C++17 起) |
后附额外字符到字符串。
1) 后附 string
str
。2) 后附字符
ch
。3) 后附
s
所指向的空终止字符串。4) 后附 initializer_list
ilist
中的字符。5) 后附字符串视图
sv
中的字符,如同用 append(sv) 。目录 |
[编辑] 参数
str | - | 要后附的 string |
ch | - | 要后附的字符值 |
s | - | 指向要后附的空终止字符串的指针 |
ilist | - | 拥有要后附的字符的 std::initializer_list |
sv | - | 拥有要后附的字符的 std::basic_string_view |
[编辑] 返回值
*this
[编辑] 复杂度
1) 与
str
的大小成线性2) 常数
3) 与
s
的大小成线性4) 与
ilist
的大小成线性[编辑] 异常
若因任何原因抛出异常,则此函数无效果(强异常保证)。 (C++11 起)
若操作会导致 size() > max_size()
,则抛出 std::length_error 。
[编辑] 注意
重载 (2) 能接受任何可隐式转换为 CharT
的类型。对于 CharT
为 char
的 std::string
,可接受类型的集合包含任何算术类型。这可能拥有非意图的效果。
[编辑] 示例
运行此代码
#include <iostream> #include <iomanip> #include <string> int main() { std::string str; str.reserve(50); // 预留足够的存储空间以避免内存分配 std::cout << std::quoted(str) << '\n'; // 空字符串 str += "This"; std::cout << std::quoted(str) << '\n'; str += std::string(" is "); std::cout << std::quoted(str) << '\n'; str += 'a'; std::cout << std::quoted(str) << '\n'; str += {' ','s','t','r','i','n','g','.'}; std::cout << std::quoted(str) << '\n'; str += 76.85; // 等价于 str += static_cast<char>(76.85) ,可能不合意图 std::cout << std::quoted(str) << '\n'; }
输出:
"" "This" "This is " "This is a" "This is a string." "This is a string.L"
[编辑] 参阅
赋值字符给字符串 (公开成员函数) |