Segmentation Fault while using vectors

here
I tried using vectors to solve this but I get segmentation fault. Can anyone tell me why?
#include <bits/stdc++.h>
#include
#include

using namespace std;

// Complete the matchingStrings function below.
vector matchingStrings(vector strings, vector queries) {
vector res; int flag=0;
for(auto i=queries.begin();i!=queries.end();i++)
{
res[flag++]=0;
for(auto j=strings.begin();j!=strings.end();j++)
{
if(*i==*j)
res[flag-1]++;
}
}
return res;
}

int main()
{
vector strings; vector queries;
int n,q;
cin>>n;
for(int i=0;i<n;i++)
cin>>strings[i];
cin>>q;
for(int i=0;i<q;i++)
cin>>queries[i];
vector res=matchingStrings(strings, queries);
for(auto i=res.begin();i!=res.end();i++)
cout<<*i<<endl;
return 0;
}