1、string类对象的常见的构造函数
函数名称 | 功能说明 |
---|---|
string() | 构造空的string类对象 |
string(const char * s) | 用C-string来构造string类对象 |
string(size_t n, char c) | string类对象中包含n个字符c |
string(const string&s) | 拷贝构造函数 |
string(const string&s, size_t n) | 用s中的前n个字符构造新的string类对象 |
2、string类对象的容量操作
函数名称 | 功能说明 |
---|---|
size_t size() const | 返回字符串有效字符长度 |
size_t length() const | 返回字符串有效字符长度 |
size_t capacity( ) const | 返回空间总大小 |
bool empty() const | 检测字符串释放为空串,是为true,否则为false |
void clear() | 清空有效字符 |
void resize(size_t n, char c) | 将有效字符的个数改成n个,多余的空间用字符c填充 |
void resize(size_t n) | 将有效字符的个数改成n个,多出的空间用0填充 |
void reserve(size_t res_arg=0) | 为字符串预留空间 |
注意:
1.在字符串中size大小和length长度没有区别
2.字符串在VS环境中默认capacity容量是15,每次扩容16,总容量为16的倍数-1,最后的位置是’\0’。(字符串相当于字符的顺序表)
3.empty();//判空,为空返回1,非空返回0
4.clear();//清空,不改变capacity的大小
5.reserve//扩充预留空间
string s1;
s1.reserve(500);
cout << s1.capacity() << endl;//输出为511,500之后第一个16的倍数-1
6.resize:直接改变size的值,空间大小重置。如果resize的值超过了capacity的值,会先调用reserve分配空间
7.reserve,resize,clear,不会导致空间缩小