Давайте пройдемся по коду здесь:
int A = 3;
/*1*/ vector<string> s(A);
/*2*/ vector<vector<string>> st(A , vector<string> (A));
/*3*/ for(int i = 0; i < A;i++)
/*4*/ for(int j =0; j<A;j++)
/*5*/ s[i][j] = '.';
В строке, обозначенной «1», вы создадите вектор (s
) из трех пустых строк. В строке, помеченной «2», вы создаете вектор (st
), содержащий три вектора, каждый из которых содержит 3 пустых строки.
В l oop в строках 3-5 вы пытаетесь присвойте символ позиции 0..2 каждой из строк в s
. Но это за пределами конца строк, так что это неопределенное поведение.
После неопределенного поведения все ставки выключены.