MMmm forse non hai capito bene la lista . Perchè dichiari un array di Lista? cioè è come se dichiarassi 10 liste , con un oggetto tu hai già una lista il primo elemento lo inserirai con
x.push(primoelemento);
il secondo con
x.push(secondoelemento);
non ha senso l' array , è errato.
cin >> x[i].push(val);
non puoi fare questa operazione devi prima inserire il valore nella variabile val e poi chiami la funzione
int main() {
int val,n;
Lista x;
cout << "Quanti elementi vuoi inserire? " << endl;
cin >> n;
for (int i=0;i<n;i++) {
cout << "Elemento: ";
cin >> val;
x.push(val);
}