c++ - 输入向量
问题描述
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] 进行输入;?
解决方案
您不为内部向量中的 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];
}
}
推荐阅读
- android - 访问另一个类的arraylist的大小
- python - 在 .txt 文件中查找特定文本
- javascript - 获取父DIV具有绝对位置的DIV的高度(JQuery)
- c# - 如何在 Unity C# 代码的 GameObject.CreatePrimitive 中添加 .fbx(人体 3D 对象)?
- r - 使用for循环检查列是否存在并创建一个新列
- amazon-web-services - 如何创建代码管道以从存储在 github 的 java 代码构建 jar 文件并将其部署到 lambda 函数?
- javascript - 如何仅运行根据屏幕尺寸生成“返回顶部”按钮的功能?
- c# - 如何修复错误:“LINQ to Entities 中不支持指定的类型成员 ...”在未映射的列上
- javascript - 使用 id_token 作为重定向 URL 中的参数的重定向用户导致身份用户为 Null
- javascript - 如何创建这些网页