Ошибка “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];
    }
} 

Если кто-то посмотрит на мой код и покажет мне правильный путь, это было бы здорово.


Ответы (0 шт):