Ошибка “vector subscript out of range”
Я новичок в программированиии,хотел создать программу которая удалит в стоке все что находится в скобках (включая сами скобки ).Длинна строки вводится пользователем .
Но мне выводится данная ошибка

#include <iostream>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
int n;
cout << "введите количество элементов" << endl;
cin >> n;
while (cin.fail() || n < 1)
{
cout << "Enter a number higher than 0: ";
cin.clear();
cin.ignore(100500, '\n');
cin >> n;
}
vector<string> students;
string buffer = "";
string q;
cout << "Введите строку " << std::endl;
do {
cin.ignore();
getline(cin, buffer);
if (buffer.size() > 0) {
for (int i = 0; i < n; i++) {
q = buffer[i];
students.push_back(q);
cout << q;
q.clear();
}
}
} while (buffer != "");
int r = 0;
int y = 0;
int x = 0;
vector<string>::iterator it;
vector<string>::iterator it2;
do {
it = find(students.begin(), students.end(), "(");
if (it != students.end()) {
y = distance(students.begin(), it);
}
it2 = find(students.begin(), students.end(), ")");
if (it2 != students.begin())
{
x = distance(students.begin(), it2);
}
if (y<x) {
for (y; y < x+1; ++y) {
students.erase(students.begin() + y);
cout << "удалили элемент "<< y << endl;
}
}
r = r + 1;
} while (r < n);
for (int i = 0; i < n; i++) {
cout << students[i];
}
}
Если кто-то посмотрит на мой код и покажет мне правильный путь, это было бы здорово.