容器会的不多,但是就是个模拟
利用个erase();
就行了。
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,m,maax;
string a[2000];
string c;//输出的
string d;//篮子
cin>>n>>m>>maax;
for(int i=1; i<=n; i++) {
cin>>a[i];
}
int aa;
while(1) {
cin>>aa;
if(aa==-1) break;
else if(aa==0) {
int l=d.size();
if(l==0) continue;
c+=d.substr(l-1,1);
d.erase(l-1,1);
} else {
if(a[aa].empty())
continue;
if(d.size()==maax) {
int l=d.size();
c+=d.substr(l-1,1);
d.erase(l-1,1);
d+=a[aa][0];
a[aa].erase(0,1);
} else {
d+=a[aa][0];
a[aa].erase(0,1);
}
}
}
cout<<c;
}