Этот вектор:
vector <int> list = {};
Имеет ровно ноль элементов. Вы никогда не пытаетесь увеличить его размер, поэтому любой доступ к этому массиву приведет к плохому результату.
Есть несколько мест, где вы обращаетесь к этому вектору: доступ к списку.
Чтобы устранить проблему, вы можете прочитать данные в значение и затем добавить их в вектор:
int value;
input >> value;
list.emplace_back(value); // emplace back expands the vector by one place.
Но это не единственная ваша проблема:
while (i <= count_line() && count_line() > 0){
Этот оператор while содержит вызовы, которые открывают файл, анализируют весь файл и возвращают счетчик. Я сомневаюсь, что компилятор может оптимизировать это, так что это чрезвычайно затратный вызов.
Можете ли вы просто читать значения, пока не останется ни одного? :
#include <vector>
#include <iterator>
#include <iostream>
#include <fstream>
int main()
{
std::ifstream file("text.txt");
std::vector<int> data(std::istream_iterator<int>{file},
std::istream_iterator<int>{});
for(auto val: data) {
std::cout << val << " ";
}
std::cout << "\n";
}