点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=110;
const char null='*';
vector<char> str(N,'*');
int n;
//使用erase函数
int main()
{
cin>>n;
for(int i=0;i<n;i++){
char ch;
cin>>ch;
str[i]=ch;
}
int i=0;
while(str[i+1]!=null){
if(str[i]==str[i+1]){
str.erase(str.begin()+i,str.begin()+i+2);
i=0;
}else i++;
}
if(str[0]!=null){
for(int i=0;str[i]!=null;i++) cout<<str[i];
}else cout<<"Check"<<endl;
return 0;
}
这道题,主要是巩固了很多语法吧,①首先对vector的初始化vector
a(N,'*')括号中第一个是大小,第二个是初始化的值
②还有对erase函数的使用,str.erase(str.begin()+i,str.begin()+i+2);,因为vector不是普通的数组,因此起始和截止要用迭代器表示,将迭代器加上一个数的类型也是迭代器,并且要遵循左闭右开的原理