C++入门指南:string类文档详细解析(非常经典,建议收藏)
Hello大家好! 很高兴与大家见面! 给生活添点快乐,开始今天的编程之路。
我的博客:<但愿.
欢迎点赞,关注
目录
一、 string类解读
二 string类的常见接口说明【注意是常见重要接口,想了解全部可以搜索网站:cplusplus】
2.1string类对象的常见构造
2.2stinrg类对象的容量操作
2.3string类对象的访问及遍历操作
2.4string类对象的修改操作
2.5 string类非成员函数
三 vs和g++下string结构的说明
3.1 vs下string的结构
3.2 g++下string的结构
一、 string类解读
string类文档(参考网站:cplusplus)
具体如下:

以下翻译只做参考。
1字符串是代表字符序列的对象。
2标准字符串class standard container为此类对象提供与字节标准容器类似的接口,但会添加专门设计用于使用单字节字符串操作的功能。
3string类是使用 basic_stringbasit_string 类模板的实例化焦糖(即字节)作为其字符类型,包含默认的 char_traits 和 allocator 类型(在模板中查看 basity_string 以获取更多信息)。
注意这个类处理的字节与所使用的编码无关:如果用于处理多字节或可变长度字符(例如UTF-8)的序列,则这个类的所有成员(length例如长度或大小)及其迭代器仍会以字节(而不是实际编码字符)进行操作。
二 string类的常见接口说明【注意是常见重要接口,想了解全部可以搜索网站:cplusplus】
2.1string类对象的常见构造
|
(constructor) 函数名称
|
功能说明
|
|
string() (重点)
|
构造空的string类对象,即空字符串
|
|
string(const char* s) (重点)
|
用C-string来构造string类对象
|
|
string(size_t n, char c)
|
string类对象中包含n个字符c
|
|
string(const string&s) (重点)
|
拷贝构造函数
|

2.2stinrg类对象的容量操作
|
函数名称
|
功能说明
|
|
size(重点)
|
返回字符串有效字符长度
|
| length |
返回字符串有效字符长度
|
| capacity |
返回空间总大小
|
|
empty (重点)
|
检测字符串释放为空串,是返回true,否则返回false
|
|
clear(重点)
|
清空有效字符
|
|
reserve(重点)
|
为字符串预留空间**
|
|
resize(重点)
|
将有效字符的个数该成n个,多出的空间用字符c填充
|
代码演示:

2.3string类对象的访问及遍历操作
|
函数名称
|
功能说明
|
|
operator[] (重 点)
|
返回pos位置的字符,const string类对象调用
|
|
begin获取一个字符的迭代器 + end获取最后一个字符下一个位置的迭代器
|
|
|
begin获取一个字符的迭代器 + end获取最后一个字符下一个位置的迭代器
|
|
|
范围for
|
C++11支持更简洁的范围for的新遍历方式
|
代码演示:

2.4string类对象的修改操作
|
函数名称
|
功能说明
|
|
在字符串后尾插字符c
|
|
|
在字符串后追加一个字符串
|
|
|
operator+= (重点)
|
在字符串后追加字符串str
|
|
c_str(重点)
|
返回C格式字符串
|
|
从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置
|
|
|
从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置
|
|
|
在str中从pos位置开始,截取n个字符,然后将其返回
|
小秘诀:
2.5 string类非成员函数
|
函数
|
功能说明
|
|
尽量少用,因为传值返回,导致深拷贝效率低
|
|
|
operator>> (重点)
|
输入运算符重载
|
|
operator<<(重点)
|
输出运算符重载
|
|
getline (重点)
|
获取一行字符串
|
|
relational operators (重点)
|
大小比较
|
代码演示:

三 vs和g++下string结构的说明
注意:下述结构是在32位平台下进行验证,32位平台下指针占4个字节
3.1 vs下string的结构
union _Bxty
{ // storage for small buffer or pointer to larger one
value_type _Buf[_BUF_SIZE];
pointer _Ptr;
char _Alias[_BUF_SIZE]; // to permit aliasing
} _Bx;

3.2 g++下string的结构
struct _Rep_base
{
size_type _M_length;
size_type _M_capacity;
_Atomic_word _M_refcount;
};
本篇文章就到此结束,欢迎大家订阅我的专栏,欢迎大家指正,希望有所能帮到读者更好理解C++相关知识 ,觉得有帮助的还请三联支持一下~后续会不断更新C/C++相关知识,我们下期再见。
更多推荐



所有评论(0)