Ошибка выхода векторного индекса за пределы диапозона

Пишу код для быстрой сортировки. Дан текстовый файл:

10
3
4
-2
51
32
12
11
24
20
99

где первое число это количество строк. Нужно отсортировать строки по возрастанию с помощью быстрой сортировки.
Ошибка: пишет что вышел за пределы вектора

Вот мой код:

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>

using namespace std;

void quickSort(vector<int> vec, int first, int last)
{
   int left = first;
   int right = last;
   int middle = vec[(left + right) / 2];
   do {
       while (vec[left] < middle)
       {
           left++;
       }
       while (vec[right] > middle)
       {
           right--;
       }
       if (left < right)
       {
           int tmp = vec[left];
           vec[left] = vec[right];
           vec[right] = tmp;
           left++;
           right--;
       }
   } while (left < right);
   quickSort(vec, first, right);
   quickSort(vec, left, last);

}

int main()
{
   
   setlocale(LC_ALL, "rus");
   ifstream file("1.txt");
   string str;
   int number;
   vector<int> vec;
   while (getline(file, str))
   {
       number = stoi(str);
       vec.push_back(number);
   }
   vec.erase(vec.begin());
   int first = vec[0];
   int size = vec.size();
   int last = vec[size - 1];
   quickSort(vec, first, last);
   for (int i = 0; i < size; i++)
   {
       cout << vec.at(i) << endl;
   }
   
   return 0;
}

Вот сама ошибка:

введите сюда описание изображения


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