Вот код:
#inclue <iostream>
using namespace std;
vector< vector<int> > g;
vector<char> used;
void dfs(int v)
{
used[v] = true;
for(int i = 0; i < g[v].size(); i++)
{
if(!used[g[v][i]]) dfs[g[v][i]];
}
}
int main()
{
int n, k;
cin >> n >> k;
g.reserve(n);
used.reserve(n);
for(int i = 0; i < n; i++)
{
g[i].reserve(n);
for(int j = 0; j < n; j++)
{
int v;
cin >> v;
g[i].push_back(v);//ошибка вылазит тут
}
}
dfs(k-1);
int c = 0;
for(int i = 0; i < n; i++)
{
if(used[i]) c++;
}
return 0;
}
текст ошибки:
Process returned -1073741819 (0xC0000005)
Очевидный вылет за пределы вектора g. Ваш вектор g имеет размер 0, а вы смело лезете в g[i].
Количество доступных элементов вектора задается методом resize, а не методом reserve.
См. также Для чего нужен reserve() в C++?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости