C++ String类常用——元素删除与添加
C++ String类常用——元素删除与添加
删除选定位置的字符
在 C++ 的 string
类中,要删除一个字符串中的特定字符,可以使用以下方法之一:
方法一:使用 erase
函数
可以使用 erase
函数来删除 string
中的一个或多个字符。具体来说,可以指定要删除的起始位置和要删除的字符数目。
1 |
|
方法二:使用 substr
函数拼接子字符串
另一种方法是使用 substr
函数来拼接字符串中要保留的部分,从而实现删除特定字符的效果。
1 |
|
删除特定位置字符
在 C++ 中,删除第一个和最后一个元素有一些特殊的方法,具体取决于所使用的容器类型。以下是针对不同容器的常见方法:
删除最后一个元素:
- 使用
pop_back
函数来删除最后一个字符。
1 |
|
删除第一个元素:
- 使用
erase
函数结合迭代器来删除第一个元素。
1 |
|
- 使用
substr
函数删除第一个字符的示例:
1 |
|
在这个示例中,我们使用 substr
函数来截取字符串,从第二个字符开始直到末尾,实现了删除第一个字符的效果。这种方法简单直观,适合用于删除第一个元素的情况。
删除选定字符
使用 remove
和 string::erase
的组合,这种方法通常用于删除特定字符。
以下是使用 remove
和 string::erase
的示例:
1 |
|
在这个例子中,remove
函数会将要删除的字符移动到字符串的末尾,然后通过 string::erase
函数来实际删除这些字符。这种方法在需要删除多个特定字符时特别有用。
附录
remove介绍
在 C++ 中,remove
是一个算法函数,定义在 <algorithm>
头文件中。remove
并不会真正删除元素,而是将符合条件的元素移到容器的末尾,并返回一个指向新的逻辑结尾的迭代器。这样做是为了保持容器的连续性。
remove
函数通常与容器的修改函数(例如 erase
)结合使用,以实际删除元素。这个组合通常用于从容器中删除特定值或元素。
语法:
1 | template< class ForwardIt, class T > |
参数:
first
:指向容器中要处理的起始位置的迭代器。last
:指向容器中要处理的结束位置的迭代器。value
:要移除的值。
返回值:
remove
返回一个指向新的逻辑结尾的迭代器,实际的元素并未删除。
示例:
1 |
|
在这个示例中,可以看出remove返回的是末尾迭代器,也对str做了修改但是没有删除,相当于逐一向前推进一位。
substr介绍
在 C++ 的标准库中,substr
是 string
类的成员函数,用于从字符串中提取子字符串。这个函数允许你指定起始位置和要提取的字符数,以获取原始字符串的子串。
语法:
1 | string substr(size_t pos = 0, size_t len = npos) const; |
参数:
pos
:子字符串的起始位置。len
:要提取的字符数。
返回值:
- 返回一个新的
string
对象,包含从原始字符串中提取的子串。
示例:
1 |
|
在这个示例中,substr
函数被用来从字符串中提取子串。通过指定起始位置和要提取的字符数,可以获得原始字符串的子串。substr
函数返回一个新的 string
对象,包含提取的子串内容。