Ввод в векторе - PullRequest
       42

Ввод в векторе

0 голосов
/ 05 мая 2020
       int n, q;
       cin>>n>>q;
       vector<vector<int>> v1 (n);
       for(int i = 0; i < n; i++) {
          int k;
          cin>>k;
          for(int j = 0; j < k; j++) {
               cin>>v1[i][j];
               int temp;
               cin>>temp;
               v1[i].push_back(temp); */        
        }
    }

Выше написанный код работает только в том случае, если я ввожу ввод с использованием кода, который находится в комментариях. Почему я не могу вводить данные, используя cin >> v1 [i] [j]; ?

1 Ответ

2 голосов
/ 05 мая 2020

Вы не выделяете место для k элементов во внутреннем векторе

std::vector<std::vector<int>> v1(n);
for (int i = 0; i < n; i++) {
  int k;
  std::cin >> k;
  v1[i].resize(k);  // Or v1[i] = std::vector<int>(k)
  for(int j = 0; j < k; j++) {
     std::cin >> v1[i][j]; 
  }
}
...