C++—string类常见构造和对容量操作的函数

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,不会导致空间缩小

发布了77 篇原创文章 · 获赞 23 · 访问量 7549

猜你喜欢

转载自blog.csdn.net/Hots3y/article/details/100937823
今日推荐