Если под «перестаёт работать», вы имеете в виду сбой, то вы, вероятно, читаете за концом буфера.vector::operator[]
не проверяется по дальности, поэтому он позволит вам выстрелить себе в ногу.
Если вы хотите пройти вектор, используйте итератор или, по крайней мере, nList.size()
.
То есть с наименьшими изменениями в вашем коде:
for (int q = 0; q < nList.size(); q++)
{
cout << nList[q] << " ";
}
или с итераторами
for (std::vector<int>::const_iterator it = nList.begin();
it != nList.end(); ++it) {
cout << *it << " ";
}