构造函数
default (1) | string(); | 默认构造函数 | 返回长度为0的空字符串 |
---|---|---|---|
copy (2) | string (const string& str); | 拷贝构造函数 | 得到str的一份拷贝 |
substring (3) | string (const string& str, size_t pos, size_t len = npos); | 从子串构造 | 从字符串str的pos位置索引开始,拷贝len个字符。但如果str太短或者len=string::npos,则复制到str的末尾。string::npos是一个很大的正整数。 string str = “012345”; string s2(str, 1, 3); // “123” string s3(str, 1, -1); // “12345” string s4(str, 1, string::npos); // “12345” string s5(str, 1, 0); // “” |
from c-string (4) | string (const char* s); | 从C风格的字符串构造 | 拷贝s指向的以空结尾的字符序列(C风格的字符串)。 |
from buffer (5) | string (const char* s, size_t n); | 从缓存构造 | 拷贝s指向的字符序列的前n个字符 |
fill (6) | string (size_t n, char c); | 填充构造 | 以n个连续的字符c填充字符串 |
range (7) | template |
范围构造 | 拷贝序列中位置在范围[first,last)字符序列,顺序不变 |
initializer list (8) | string (initializer_list |
初始化列表 | 按原顺序拷贝初始化列表il中的每个字符 |
move (9) | string (string&& str) noexcept; | Acquires the contents of str. str is left in an unspecified but valid state. |
上述所有的构造函数都支持成员类型为allocator_type的对象作为末尾附加的可选参数,这和string是不相关的(上面没有显示,请参看basic_string的构造器以获取完整签名)。
字符串拼接
+=
string& operator+= (const string& str);
string& operator+= (const char* s);
string& operator+= (char c);
string& operator+= (initializer_list<char> il);
append
string& append (const string& str);
string& append (const string& str, size_t subpos, size_t sublen);
string& append (const char* s);
string& append (const char* s, size_t n);
string& append (size_t n, char c);
string& append (InputIterator first, InputIterator last);
string& append (initializer_list<char> il);
push_back
void push_back (char c);
删除字符
erase 删除某个位置或某个范围内的字符
string& erase (size_t pos = 0, size_t len = npos);
iterator erase (const_iterator p);
iterator erase (const_iterator first, const_iterator last)
pop_back 删除尾字符
void pop_back();