Hi everyone, I was a solving a problem of changing one vector in a way of removing all the elements of the vector that the other vector has. And unfortunately it doesn't work. Here is the code :

Code:#include<iostream> #include<vector> #include<string> using namespace std; template <typename type> void function(vector<type>&a,vector<type>&b){ for(int i=0;i<a.size();i++){ int k(0); for(int j=0;j<b.size();j++){ if(a[i]==b[j]) k=1; } if(k==1){ for(int p(i);p<a.size()-1;p++){ a[p]=a[p+1]; } a.resize(a.size()-1); } } } int main(){ int n; cout<<"How many words ?"; cin>>n; cin.ignore(1000,'\n'); vector<string>s(n); for(int i=0;i<n;i++){ getline(cin,s[i]); } int b; cout<<"How many words now?"; cin>>b; cin.ignore(1000,'\n'); vector<string>j(b); for(int u(0);u<b;u++){ getline(cin,j[u]); } function(s,j); cout<<endl; for(int i=0;i<s.size();i++){ cout<<s[i]<<endl; } return 0; }