首页 > 解决方案 > 输入向量

问题描述

       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] 进行输入;?

标签: c++vectorinput2d

解决方案


您不为内部向量中的 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]; 
  }
}

推荐阅读