String容器
1. string基本概念
本质:
- string是C++风格的字符串,而string本质上是一个类
string和char * 区别:
- char * 是一个指针
- string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
特点:
string 类内部封装了很多成员方法
例如:查找find,拷贝copy,删除delete 替换replace,插入insert
string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责
2. 运算符
运算符 | 说明 |
---|---|
operator+ | 连接两个字符串对象。 |
operator!= | 测试运算符左侧的字符串对象是否不等于右侧的字符串对象。 |
operator== | 测试运算符左侧的字符串对象是否等于右侧的字符串对象。 |
operator< | 测试运算符左侧的字符串对象是否小于右侧的字符串对象。 |
operator<= | 测试运算符左侧的字符串对象是否小于或等于右侧的字符串对象。 |
operator<< | 一个模板函数,用于向输出流插入字符串。 |
operator> | 测试运算符左侧的字符串对象是否大于右侧的字符串对象。 |
operator>= | 测试运算符左侧的字符串对象是否大于或等于右侧的字符串对象。 |
operator>> | 一个模板函数,用于从输入流提取字符串。 |
3. 专用化模板
名称 | 说明 |
---|---|
hash | 生成字符串的哈希。 |
swap | 交换两个字符串的字符数组。 |
stod | 将字符序列转换为 double 。 |
stof | 将字符序列转换为 float 。 |
stoi | 将字符序列转换为 int 。 |
stold | 将字符序列转换为 long double 。 |
stoll | 将字符序列转换为 long long 。 |
stoul | 将字符序列转换为 unsigned long 。 |
stoull | 将字符序列转换为 unsigned long long 。 |
to_string | 将一个值转换为 string。 |
to_wstring | 将一个值转换为宽字符串。 |
4. 成员函数
成员函数 | 说明 |
---|---|
append | 向字符串的末尾添加字符。 |
assign | 对字符串的内容赋新的字符值。 |
at | 返回对字符串中指定位置的元素的引用。 |
front | 反对字符串中第一个元素 |
back | 返回对字符串中最后元素 |
begin | 返回发现字符串中第一个元素的位置的迭代器。 |
end | 返回发现字符串中最后一个元素之后的位置的迭代器。 |
c_str | 将字符串的内容转换为以 null 结尾的 C 样式字符串。 |
capacity | 返回在不增加字符串内存分配的情况下可存储在字符串中的元素的最大数目。 |
cbegin | 返回发现字符串中第一个元素的位置的常量迭代器。 |
cend | 返回发现字符串中最后一个元素之后的位置的常量迭代器。 |
clear | 清除字符串中的全部元素。 |
compare | 将字符串与指定字符串比较,确定两个字符串是否相等或按字典顺序一个字符串是否小于另一个。 |
copy | 将指定数目的字符从源字符串中的索引位置复制到目标字符组。 已弃用。 改为使用 basic_string::_Copy_s 。 |
crbegin | 返回发现反向字符串中第一个元素的位置的常量迭代器。 |
crend | 返回发现反向字符串中最后一个元素之后的位置的常量迭代器。 |
_Copy_s | 将指定数目的字符从源字符串中的索引位置复制到目标字符组。 |
data | 将字符串的内容转换为字符数组。 |
empty | 测试字符串是否包含字符。 |
ends_withC + + 20 | 检查字符串是否以指定的后缀结尾。 |
erase | 从字符串中的指定位置删除一个或一系列元素。 |
find | 向前搜索字符串,搜索与指定字符序列匹配的第一个子字符串。 |
find_first_not_of | 在字符串中搜索不属于指定字符串中任何元素的第一个字符。 |
find_first_of | 在字符串中搜索与指定字符串中任何元素匹配的第一个字符。 |
find_last_not_of | 在字符串中搜索不属于指定字符串元素的最后一个字符。 |
find_last_of | 在字符串中搜索属于指定字符串中一个元素的最后一个字符。 |
get_allocator | 返回用于构造字符串的 allocator 对象的副本。 |
insert | 将一个元素、多个元素或一系列元素插入到指定位置的字符串中。 |
length | 返回字符串中元素的当前数目。 |
max_size | 返回字符串可包含的字符的最大数目。 |
pop_back | 删除字符串的最后一个元素。 |
push_back | 在字符串的末尾处添加一个元素。 |
rbegin | 返回指向反向字符串中第一个元素的迭代器。 |
rend | 返回指向刚超出反向字符串的最后一个元素的位置的迭代器。 |
replace | 用指定字符或者从其他范围、字符串或 C 字符串复制的字符来替代字符串中指定位置的元素。 |
reserve | 将字符串的容量设置为一个数目,这个数目至少应与指定数目一样大。 |
resize | 根据要求追加或删除元素,为字符串指定新的大小。 |
rfind | 向后搜索字符串,搜索与指定字符序列匹配的第一个子字符串。 |
shrink_to_fit | 放弃字符串的超出容量。 |
size | 返回字符串中元素的当前数目。 |
starts_withC + + 20 | 检查字符串是否以指定的前缀开头。 |
substr | 从字符串起始处的指定位置复制最多某个数目的字符的子字符串。 |
swap | 交换两个字符串的内容。 |
之前的使用大多是当成一个简单的类使用,而并不清楚string
的容器属性,总结了一下其常用的一些函数,使用时可以查看,详细内容可查看下面链接示例。
示例链接https://docs.microsoft.com/zh-cn/cpp/standard-library/basic-string-class?view=msvc-160