📅  最后修改于: 2023-12-03 15:37:34.736000             🧑  作者: Mango
在C++中,使用STL可以很方便的从字符串中删除所有连续的重复项。
下面是实现此功能的代码片段:
#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::string str = "aaabbbcccdddeeefffaaabbbccc";
auto last = std::unique(str.begin(), str.end());
str.erase(last, str.end());
std::cout << str << std::endl;
return 0;
}
在这个代码片段中,我们首先创建了一个字符串str
,该字符串包含了一些连续的重复项。
然后,我们使用std::unique()
算法从字符串中去除所有的连续重复项。该算法会返回一个指向新的尾部的迭代器。我们使用该迭代器和std::string
的erase()
方法删除了所有超出新长度的部分。
最后,我们输出了新的字符串。
在上面的代码中,我们使用了STL的std::unique()
算法。该算法会在传入的迭代器范围内,去除所有的连续相同元素,只保留第一个元素。该算法会返回一个指向新的尾部的迭代器。
在我们的代码中,我们使用str.begin()
和str.end()
来指定迭代器范围,即整个字符串。
然后,我们使用str.erase()
方法来删除所有超出新长度的部分,即所有重复的部分。该方法接受两个迭代器参数,表示要删除的范围。在我们的代码中,我们指定了last
和str.end()
,即新的尾部和原字符串的尾部。
在C++中,使用STL可以很方便的从字符串中去除所有的连续重复项。我们可以使用std::unique()
算法和std::string
的erase()
方法来完成这个功能。