среда, 10 января 2018 г.

Ввод массива неизвестной длины

В некоторых задачах необходимо ввести элементы массива, но при этом сколько элементов не задано точно, кроме этого нужно считывать только данные с одной строки (например, список вершин графа). Как считать до конца строки, т.е. когда нажата клавиша Enter?

int n,a;
cin>>n; //кол-во вершин
vector <int> A[n]; //список смежных вершин
for(int i=0;i<n;i++)
{
  do{    
    cin>>a;
    A[i].push_back(a);
  }while(cin.get()!=10);//если после числа не Enter, но может быть пробел
}

Получается разреженная матрица:

for (int i=0; i<n; i++)
{
    for(int j=0; j<A[i].size(); j++)
        cout<<A[i][j]<<" ";
    cout<< endl;
}



Комментариев нет:

Отправить комментарий