伙计们,我有一个问题需要理解这三行代码。我正在做的是采用相同构造函数参数的三个string
对象。但面对一个问题,以了解代码如何在这三行中工作。我知道了
begin()
函数返回迭代器或引用容器第一个元素的const_iterator
end()
函数返回一个迭代器或const_iterator,引用容器结束后的下一个位置。
erase()
函数从容器中删除一个或多个元素
但是remove()
函数做了什么?
这是我的代码:
#include <iostream>
#include<string>
#include<algorithm>
using namespace std;
int main() {
string str = "<tag1 value = \"HelloWorld\">";
string str2 = "<tag1 value = \"HelloWorld\">";
string str3 = "<tag1 value = \"HelloWorld\">";
remove(str.begin(), str.end(), '\"');
str2.erase(remove(str2.begin(), str2.end(), '\"'));
str3.erase(remove(str3.begin(), str3.end(), '\"'),str3.end());
cout << str << endl;
cout << str2 << endl;
cout << str3 << endl;
}
输出:
<tag1 value = HelloWorld>">
<tag1 value = HelloWorld>>
<tag1 value = HelloWorld>